您的位置:首页 > 运维架构

stopImmediatePropagation停止当前节点和后续节点的事件侦听

2009-02-02 15:21 253 查看
本来是想提问的,关于stopPropagation和stopImmediatePropagation的区别
后来研究了一下,终于明白了stopImmediatePropagation的作用,总结就是“可以阻止掉同一事件的其他优先级较低的侦听器的处理”

比如以下代码:

this.addEventListener(MouseEvent.MOUSE_DOWN, funA,false,2);

this.addEventListener(MouseEvent.MOUSE_DOWN, funB,false,1);

function funA (evt:MouseEvent):void

{

trace ("A!");

evt.stopImmediatePropagation ();

}

function funB (evt:MouseEvent):void

{

trace ("B!");

}

因为侦听器funA的优先级为2比funB高,所以先执行了funA,而在funA里面有evt.stopImmediatePropagation ();因此funB没有被执行 输出结果就是一个"A"。

stopPropagation
停止后续节点的事件侦听,当前节点注册的侦听器可用。如funA和funB,后续则不可用。

stopImmediatePropagation
停止当前节点和后续节点的事件侦听,有优先级,则按优先级顺序,无优先级则按注册侦听器的顺序。即执行到发出stopImmediatePropagation命令的侦听器后面的侦听器不可用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐