as3 addEventListener各参数详解

来源:互联网 发布:无忧推广软件骗局 编辑:程序博客网 时间:2024/06/03 11:26

转自:http://blog.csdn.net/neaudiy/article/details/6237536


public function addEventListener(

                             type:String,    //动作类型

                             listener:Function,  //调用的方法

                             useCapture:Boolean = false,  //确定侦听器是运行于捕获阶段、目标阶段还是冒泡阶段。 如果将 useCapture 设置为 true,则侦听器只在捕获阶段处理事件,而不在目标或冒泡阶段处理事件。 如果 useCapture 为 false,则侦听器只在目标或冒泡阶段处理事件,用这个参数搭配stopPropagation()/stopImmediatePropagation()可以做些很偏门的事

                             priority:int = 0, priority参数用于设置该事件侦听器的优先级。默认值为0,但你可以将它设置为负整数值或正整数值。将优先执行此数字较大的事件侦听器。对于具有相同优先级的事件侦听器,则按它们的添加顺序执行,因此将优先执行较早添加的侦听器                             useWeakReference:Boolean = false

可以使用useWeakReference参数来指定对侦听器函数的引用是弱引用还是正常引用。通过将此参数设置为true,可避免侦听器函数在不再需要时仍然存在于内在中的情况。Flash Player使用一项称为“垃圾回收”的技术从内在中清除不再使用的对象。如果不存在对某个对象的引用,则该对象被视为不再使用。垃圾回收器不考虑弱引用,这意味着如果侦听器函数仅具有指向它的弱引用,则符合垃圾回收条件

                             ):void

 

事件流:


 

 

 

stopPropagation() 与 stopImmediatePropagation()  都能阻止后续的侦听行为,即能阻挡掉事件流中事件的冒泡,简而言之就是让后面的侦听都不执行。

两者的区别在于,stopImmediatePropagation 会让当前对象的次优先级的所有监听都不执行,

一般情况下两者用哪个都可以,但比如下面代码,这种使用stopImmediatePropagation()更有效


原创粉丝点击