[AS3]as3.0的事件处理详细说明(4)
事件对象 在事件处理的过程中,系统会自动创建一个事件类的实例,作为参数传递给接收者函数。这个实例称为事件对象,由于事件对象是事件类的实例,所以可以调用事件。 MouseEvent类的部分属性 属性名 说明 stageX
事件对象
在事件处理的过程中,系统会自动创建一个事件类的实例,作为参数传递给接收者函数。这个实例称为事件对象,由于事件对象是事件类的实例,所以可以调用事件。
MouseEvent类的部分属性
属性名 说明
stageX
stageY
buttonDown
ctlKey
练习使用事件处理:
1、新建Flash文档
2、改图层1为mc,单击第一帧,打开动作面板,输入代码:
//创建和引用Sprite类的实例
svr test:Sprite = new Sprite();
//定义绘制样式
test.graphics.beginFill(0xff0000,1);
//绘制圆形
test.graphics.drawCircle(275,200,100);
//添加到显示列表
stage.addChild(test);
//允许使用双击
test.doubleClickEnabled = true;
//注册双击事件的侦听器
test.addEventListener(MouseEvent.DOUBLE_CLICK,receiver);
//定义侦听器函数
function receiver(e:MouseEvent):void
{
}
上面的代码创建了Sprite类的实例,Sprite类继承了InteractiveObject类的双击事件,所以Sprite类的实例能处理双击事件。
用MouseEvent.DOUBLE_CLICK代替事件名,因为MouseEvent类有类属性DOUBLE_CLICK,表示字符串“doubleClick”。
接收函数带有一个参数,数据类型与事件所在的类名相同,这个参数用于发送者和接收者之间传递数据。
Sprite类的实例是双击事件的发送者,当用户在显示实例中双击时,实例就发出双击事件,函数receiver()收到事件后,执行函数体内的代码。
3、测试影片,在圆形实例双击鼠标,看一下效果。
4、修改侦听器函数,尝试使用对象,即函数中的参数,由于此参数是MouseEvent类的实例,所以可调用MouseEvent类的实例属性和方法。
funciton receiver(e:MouseEvent):void
{
}
访问实例属性和实例方法的语法为“实例名.属性名”和“实例名.方法名()”。上面代码中参数即MouseEvent类的实例,所以可通过点语法来访问实例属性。
5、测试影片,双击影片中的图形,查看输出信息。
事件类的架构
ActionScript 3.0的事件是由很多事件类来管理的,这些类包含了很多属性、方法及非常复杂的事件。
在所有的事件类中,Event类处理一般的事件,MouseEvent类处理鼠标事件,KeyboardEvent类处理键盘事件。这些类的架构方式与显示类相似,都是通过继承来实现的。
热门文章推荐
- [HLS]做自己的m3u8点播系统使用HTTP Live Streaming(HLS技术)
- [FMS]FMS流媒体服务器配置与使用相关的介绍
- [AS3]什么是M3U8,与HTML5的区别是什么
- AS2.0 让flash自适应全屏,并且不自动缩放
- [AS3]as3.0的sound类常用技巧整理
- [AS3]as3与ByteArray详解、ByteArray介绍、ByteArray用法
- 关于RTMP,RTMPT,RTMPS,RTMPE,RTMPTE协议的介绍
- [JS]分享浏览器弹出窗口不被拦截JS示例
请稍候...