AS3的事件模型
ActionScript 3.0 引入了单一事件处理模型,以替代以前各语言版本中存在的众多不同的事件处理机制。事件总管, flash.events事件包, 支持新的 DOM 事件模型 .AS3的事件模型解决了原先2.0时代的不少尴尬问题.如原来费心思去写双击类,现在MouseEvent有双击事件了.还有事件流的概念,我原来都是在按钮之中再叠一个按钮把他鼠标指针隐藏了,自已命名为防叠层,防止事件重叠,在开发win组件时会用得到.
1. MouseEvent
在类文件里添加鼠标事件类要先引入import flash.events.MouseEvent;
例:
1 2 3 4 5 6 7 | bt.buttonMode = false ;//是否显视按钮状态,只用于对影片属性的设置 bt.mouseEnabled = false;//鼠标是否可用 bt.doubleClickEnabled = true;//是否可以双击,使用双击事件时,要先打开这个 bt.addEventListener(MouseEvent.DOUBLE_CLICK, doubleclick); function doubleclick(event:MouseEvent):void { trace("真行,双击都会!") } |
MouseEvent(
type:String,
bubbles:Boolean = true, (default = true) — 确定 Event 对象是否参与事件流的冒泡阶段。
cancelable:Boolean = false, (default = false) — 确定是否可以取消 Event 对象。
localX:Number, — 事件发生点的相对于包含 Sprite 的水平坐标。
localY:Number, — 事件发生点的相对于包含 Sprite 的垂直坐标。
relatedObject:InteractiveObject = null, (default = null) — 受事件影响的补充 InteractiveObject 实例。 例如,发生 mouseOut 事件时,relatedObject 表示指针设备当前所指向的显示列表对象。
ctrlKey:Boolean = false, — 指示是否已激活 Ctrl 键。
altKey:Boolean = false, — 指示是否已激活 Alt 键(仅限 Windows)
shiftKey:Boolean = false, — 指示是否已激活 Shift 键。
buttonDown:Boolean = false, — 指示是否按下了鼠标主按键。
delta:int = 0)(default = 0) — 指示用户将鼠标滚轮每滚动一个单位应滚动多少行。 正 delta 值指示向上滚动;负值指示向下滚动。 通常所设的值为 1 到 3;值越大,滚动得越快。 此参数仅用于 MouseEvent.mouseWheel 事件。
MouseEvent事件表
CLICK : 定义 click 单击事件
DOUBLE_CLICK : 定义 doubleClick双击事件
MOUSE_DOWN : 定义 mouseDown鼠标按下事件
MOUSE_MOVE : 定义 mouseMove 鼠标移动事件
MOUSE_OUT : 定义 mouseOut 鼠标移出事件
MOUSE_OVER : 定义 mouseOver 鼠标移过事件
MOUSE_UP : 定义 mouseUp 鼠标提起事件
MOUSE_WHEEL : 定义 mouseWheel轨迹球滚动触发事件
ROLL_OUT : 定义 rollOut 滑入事件
ROLL_OVER : 定义 rollOver 滑出事件鼠标事件
2. 文本事件类
3. 时间类
在AS3里面Event子类里的timer.有一个不如人意的,如: new Timer(1000,20)这表示以1000毫秒也就是1秒为间隔,触发20次动作,但这个1000毫秒并不是真正意义上的1000毫秒,取决于 SWF 文件的帧频或 Flash Player 的环境,如果机子慢也许要等到1200毫秒后才触发,这和以前用onEnterFrame控制一样,不准确.如果用他来做要求精确的定时器,那只能用另外的方法了!
1 2 3 4 5 6 7 8 | var myTimer:Timer = new Timer(1000,20);// 1秒为间隔,触发20次动作 myTimer.addEventListener(TimerEvent.TIMER, timefun); myTimer.start();//开始计时 var timeadd:Number=0; function timefun(the:TimerEvent):void { timeadd+=1 trace("时间事件:触发"+timeadd+"次") } |
timer所有方法:
Timer()每次构造新的 Timer 对象。
reset()重置,类似于秒表的重置按钮。
start()如果计时器尚未运行,则启动计时器
stop()停止计时器。
4. Loader事件
在加载开始时调度 open 事件。
在无法加载文件或在加载过程中出现错误时,调度 ioError 或 securityError 事件。
在文件加载过程中会不断引发 progress 事件。
在文件完成下载但加载的影片剪辑的方法和属性尚不可用时调度 complete 事件。
在可以访问加载的 SWF 文件的属性和方法,即可以开始操作加载的 SWF 文件时调度 init 事件。 在 complete 处理函数之前调度该事件。 在流式 SWF 文件中,init 事件可以在明显早于 complete 事件的时间发生。 在大多数情况下,请使用 init 处理函数。
5.load事件
complete:Event — 文件下载完成后由关联的 LoaderInfo 对象调度。 complete 事件总是在 init 事件之后调度。
httpStatus:HTTPStatusEvent — 在通过 HTTP 发出网络请求并且 Flash Player 可以检测到 HTTP 状态代码时,由关联的 LoaderInfo 对象调度。
init:Event — 在可以访问被加载的 SWF 文件的属性和方法时,由关联的 LoaderInfo 对象调度。 init 事件总是在 complete 事件之前调度。
ioError:IOErrorEvent — 在发生会导致加载操作失败的输入或输出错误时,由关联的 LoaderInfo 对象调度。
open:Event — 下载操作开始时由关联的 LoaderInfo 对象调度。
progress:ProgressEvent — 在下载操作进行过程中接收到数据时,由关联的 LoaderInfo 对象调度。
unload:Event — 删除被下载的对象时,由关联的 LoaderInfo 对象调度。
5.FullScreenEvent事件
只要舞台进入或离开全屏显示模式,Flash 就调度 FullScreenEvent 对象。只有一种类型的
1 | fullScreen |
事件:
1 | FullScreen<span class="searchhilite">Event</span>.FULL_SCREEN |
。
6.DataEvent事件
将原始数据完全加载到 Flash 后,Flash将调度 DataEvent 对象。 存在两种数据事件类型:
- DataEvent.DATA:针对发送或接收的数据进行调度。
- DataEvent.UPLOAD_COMPLETE_DATA:当数据已发送且服务器响应后进行调度
删除事件侦听器
removeEventListener()
相关文章










评论
还没有评论呢。