![]()
课堂导入
许多的交互式动画都离不开鼠标事件,例如下面的连单词游戏,通过鼠标的点击来完成。那什么是鼠标事件呢,又如何编写鼠标事件呢?赶快加入到我们的学习中来吧!
![]()
学习目标
1、了解鼠标事件以及鼠标事件的类型;
2、学会使用鼠标事件。
![]()
学习任务单
![]()
教学视频
![]()
教学课件
![]()
实战演练
以下作品为素材库中作品展示,下面有具体的代码解释。
Mouse.hide(); //隐藏鼠标指针。
stage.addEventListener(MouseEvent.MOUSE_MOVE,mousemove);//
添加addEventListener方法,使用MOUSE_MOVE事件,注册事件侦听。
function mousemove(a:MouseEvent) {
s_mc.x=mouseX;
s_mc.y=mouseY;
}//
事件处理程序中使用赋值语句进行跟随。
![]()
拓展资源
(一)思考一下:如何制作利用FLASH制作个人博客网站并用鼠标控制呢?

(二)操作步骤
该网站主要有三个设计内容:进度条、多级菜单、模块加载内容。其中模块加载内容为swf 文件,可以单独设计,这里不再叙述。网站拓扑结构如下图所示。

一、网站背景的制作
新建背景影片剪辑,命名为:beijing,导入所需要的图形,如下图所示。

二、进度条制作
1、在“背景层”上新建一层,名为“进度条背景”,用矩形工具画一个长条,宽:400,高:20,位置相对于舞台居中对齐,右击转换为影片剪辑元件,命名为“载入进度条背景”。
2、再新建一层,名为“载入进度条”,用矩形工具再画一个长条,宽:398,高:18,位置相对于舞台居中对齐,右击转换为影片剪辑元件,命名为“载入进度条”,实例名称为“jdt_mc”。

3、新建一层名为“actions”,按F9打开动作面板,输入如下代码,
import flash.events.ProgressEvent;
import flash.display.LoaderInfo;//导入加载的信息类
import flash.text.TextField;
stop();
//进度条控制
var display_txt:TextField = new TextField();//该文本框显示加载的进度
var num:int;
display_txt.width = 100;
display_txt.height = 25;
display_txt.x = 700;
display_txt.y = 360;
addChild(display_txt);
jdt_mc.width = 1;//初始化进度条影片剪辑jdt_mc的宽度为1
this.loaderInfo.addEventListener(ProgressEvent.PROGRESS,myloadmovie);//为主场景响应加载事件
this.loaderInfo.addEventListener(Event.COMPLETE,myover); //响应加载完成事件
function myloadmovie(event:ProgressEvent):void
{
num = Math.floor(event.bytesLoaded/event.bytesTotal);//为加载进度取整
jdt_mc.width = 398 * num;//实现jdt_mc的长度跟随加载百分比的变化而变化
display_txt.text = num*100 +"%";//把加载的进度显示在display_txt文本框中
}
function myover(event:Event):void{
gotoAndStop(10);
this.loaderInfo.removeEventListener(ProgressEvent.PROGRESS,myloadmovie);//当加载完成后消除掉加载进程事件
removeChild(display_txt);//去除display_txt
}
三、多级菜单制作
1.创建“首页”菜单项
步骤1:创建一矩形按钮元件,命名为“元件1”,备用。
步骤2:创建影片剪辑,命名为“首页”,图层1第1帧输入文字:首页,22磅字体,褐色。图层2第1帧引入“元件1”按钮,将按钮的alpha值设置为0%,按钮全透明。图层3第1帧输入代码:stop(); 如下图所示。

注:首页菜单项没有二级菜单。
2. 创建“关于自己”菜单项
步骤1:创建“子菜单1”影片剪辑,“背景”图层第1帧绘制褐色矩形框;“文本”图层第1帧输入两组文字:个人简介、个人成就;“图层2”图层第1帧引入两个“元件1”按钮元件,分别放在输入的两组文字上。如下图所示。
步骤2:创建影片剪辑,命名为“关于自己”,图层1第1帧输入文字:关于自己,22绑字体,褐色。图层2第1帧引入2个“元件1”按钮,将按钮的alpha值设置为0%,按钮全透明,按钮实例名分别为:bnt1、bnt2。图层3第1帧引入“子菜单1”影片剪辑,到第10帧创建补间动画,使子菜单从“关于自己”文字的上方平移到文字下方;第10帧的“子菜单”影片剪辑实例名为:cd1_mc图层4第1帧绘制遮罩;图层56第1帧输入代码:stop(); 如下图所示。


注:“关于自己”菜单项有二级菜单。
创建as类文件,命名为cd1.as,且与“承担cd1_mc”影片剪辑关联。类文件中输入以下内容:
package cd{
import flash.display.Sprite;
import flash.display.*;
import flash.events.MouseEvent;
import flash.net.URLRequest;
import flash.system.*;
import flash.utils.*;
import cd.caidan;
import cd.cd1;
import cd.cd2;
public class cd1 extends Sprite{
public function cd1(){
bnt1.addEventListener(MouseEvent.CLICK,cd11);
bnt2.addEventListener(MouseEvent.CLICK,cd12);}
private function cd11(event:MouseEvent):void{
var url1:URLRequest=new URLRequest("11.swf");
if(caidan.loader.content)
{caidan.loader.unload();
}
caidan.loader.load(url1);
caidan.container.addChild(caidan.loader);
}
private function cd12(event:MouseEvent):void{
var url1:URLRequest=new URLRequest("22.swf");
if(caidan.loader.content)
{caidan.loader.unload();
}
caidan.loader.load(url1);
caidan.container.addChild(caidan.loader);
}
}}
其它菜单的影片剪辑参考“首页”、“关于自己”影片剪辑的制作。
3.创建整体菜单项
创建影片剪辑,命名为“menu” ,引入“beijing”影片剪辑,导入做好的“首页”、“关于自己”、“作品展示”、“动态新闻”、“更多”影片剪辑,实例名分别命名为:sy_mc 、gyzj_mc、zpzs_mc、dtxw_mc、gd_mc。如下图所示。
为“menu”影片剪辑创建关联类。创建as文件,命名为caidan.as,输入代码:
package cd{
import flash.display.Sprite;
import flash.display.*;
import flash.events.MouseEvent;
import flash.net.URLRequest;
import flash.system.*;
import flash.utils.*;
import cd.caidan; //导入自定义的其它类
import cd.cd1;
import cd.cd2;
public class caidan extends Sprite{
public static var loader=new Loader();
public static var container:Sprite=new Sprite;
//定义公用容器变量
public function caidan(){
addChild(container);
container.addChild(loader);
setChildIndex(container,1);//设置容器层次
container.x=-600;
container.y=-250;
var url1:URLRequest=new URLRequest("sy.swf");
caidan.loader.load(url1);
caidan.loader.x=-40;
caidan.loader.y=-85;
caidan.container.addChild(caidan.loader);//容器初始显示内容
sy_mc.addEventListener(MouseEvent.CLICK, jg0);//菜单事件侦听
gyzj_mc.addEventListener(MouseEvent.MOUSE_OVER, jg2);
gyzj_mc.addEventListener(MouseEvent.ROLL_OUT, yc2);
zpzs_mc.addEventListener(MouseEvent.MOUSE_OVER, jg3);
zpzs_mc.addEventListener(MouseEvent.ROLL_OUT, yc3);
dtxw_mc.addEventListener(MouseEvent.CLICK, jg4);
gd_mc.addEventListener(MouseEvent.CLICK, jg5);
}
private function jg0(MouseEvent):void{//若首页菜单单击,则加载“sy.swf”文件
var url1:URLRequest=new URLRequest("sy.swf");
if(caidan.loader.content)//判断容器是否有加载内容,若有则卸载
{caidan.loader.unload();
}
caidan.loader.load(url1);
caidan.loader.x=-40;//设置容器对象显示位置
caidan.loader.y=-85;
caidan.container.addChild(caidan.loader);//显示容器内容
}
private function jg4(MouseEvent):void{//单击“动态新闻”菜单响应事件
}
private function jg5(MouseEvent):void{//单击“更多”菜单相应事件
}
private function jg2(event:MouseEvent):void{//单击“关于自己”菜单响应事件
gyzj_mc.gotoAndStop(10);
}
private function yc2(event:MouseEvent):void{
//鼠标滑出“关于自己”菜单响应事件
gyzj_mc.gotoAndStop(1);
}
private function jg3(event:MouseEvent):void{
//鼠标单击“作品展示”菜单响应事件
zpzs_mc.gotoAndStop(10);
}
private function yc3(event:MouseEvent):void{
//鼠标滑出“作品展示”菜单响应事件
zpzs_mc.gotoAndStop(1);
}
}}


