event.bubbles
对于false
任何事件,设置event.stopPropagation()
或stopImmediatePropagation()
处理事件时有什么区别 ?
我将 Flex4 与 AS3 一起使用。
event.bubbles
对于false
任何事件,设置event.stopPropagation()
或stopImmediatePropagation()
处理事件时有什么区别 ?
我将 Flex4 与 AS3 一起使用。
本文中的信息 - ActionScript 3.0 中的事件处理简介更具示范性和易于理解。它将增强@Jason Sturges 上述接受的答案。
事件冒泡和事件捕获是事件的两个方面。如果将 event.bubbles 设置为 false,则表示该事件被标记为非冒泡事件。
bubbles:指示事件是否是冒泡(并捕获)的事件。这并不意味着该事件经历了或正在经历捕获或冒泡阶段,而是一种可以发生的事件。
下图(来自上面的文章)显示了事件是如何进行的。
和的区别在下面的图像stopPropagation()
中stopImmediatePropagation()
会更清楚。
停止传播:
停止立即传播:
设置bubbles
为false
意味着事件根本不会在显示列表中冒泡。
stopPropagation()
并使stopImmediatePropagation()
当前事件侦听器最后一个处理事件。
和之间的区别在于stopPropagation()
,stopImmediatePropagation()
它stopImmediatePropagation()
不仅会阻止事件移动到下一个节点,还会阻止该节点上的任何其他侦听器捕获它们的事件。
看例子:
object.addEventListener( MouseEvent.CLICK, functionOne );
object.addEventListener( MouseEvent.CLICK, functionTwo );
如果functionOne
contains event.stopPropagation()
,functionTwo
也会被调用。如果它包含event.stopImmediatePropagation()
,functionTwo
将被忽略。