10

event.bubbles对于false任何事件,设置event.stopPropagation()stopImmediatePropagation()处理事件时有什么区别 ?

我将 Flex4 与 AS3 一起使用。

4

3 回答 3

32

本文中的信息 - ActionScript 3.0 中的事件处理简介更具示范性和易于理解。它将增强@Jason Sturges 上述接受的答案。

事件冒泡和事件捕获是事件的两个方面。如果将 event.bubbles 设置为 false,则表示该事件被标记为非冒泡事件。

bubbles:指示事件是否是冒泡(并捕获)的事件。这并不意味着该事件经历了或正在经历捕获或冒泡阶段,而是一种可以发生的事件。

下图(来自上面的文章)显示了事件是如何进行的。

事件捕获和冒泡

和的区别在下面的图像stopPropagation()stopImmediatePropagation()会更清楚。

停止传播:

停止传播

停止立即传播:

停止立即传播

于 2012-10-01T12:53:19.380 回答
18

设置bubblesfalse意味着事件根本不会在显示列表中冒泡。

stopPropagation()并使stopImmediatePropagation()当前事件侦听器最后一个处理事件。

和之间的区别在于stopPropagation()stopImmediatePropagation()stopImmediatePropagation()不仅会阻止事件移动到下一个节点,还会阻止该节点上的任何其他侦听器捕获它们的事件。

于 2011-10-18T05:04:36.903 回答
3

看例子:

object.addEventListener( MouseEvent.CLICK, functionOne );

object.addEventListener( MouseEvent.CLICK, functionTwo );

如果functionOnecontains event.stopPropagation()functionTwo也会被调用。如果它包含event.stopImmediatePropagation(),functionTwo将被忽略。

于 2012-03-30T06:13:40.647 回答