闪存事件阶段?

6
请简单解释一下Flash事件框架中的三个阶段。所谓事件阶段,指的是:CAPTURING_PHASE、AT_TARGET和BUBBLING_PHASE。需要明确的是,我所说的是flash.events.Event及其子类。如果能提供深入的示例就更好了,例如当您单击嵌套的MovieClip时会发生什么?

好问题。我正在追踪一个与Stack Overflow(一个真正的,ActonScript错误#1023)有关的问题,我相信这与AIR中的MouseEvent传播有关。我很难理解事件模型。 - Matt Miller
2个回答

10
通过事件传播,你要处理三个事件的“阶段”(见图2)。每个阶段表示一个路径或事件在Flash中与该事件相关的显示对象中自我传递的位置。一个事件的三个阶段是:捕获,目标和冒泡:
- 捕获阶段:表示目标对象的父对象,即事件起源的对象。任何传播事件都从最顶部(舞台)开始,沿着显示对象层次结构向下工作,直到达到原始目标对象。 - 目标阶段:目标阶段是事件位于目标对象或事件起源对象的阶段。与捕获和冒泡阶段不同,此阶段始终只与一个对象(目标对象)相关。 - 冒泡阶段:当事件“冒泡”时,它沿着捕获阶段的相反路径,并沿着目标对象的父级层次结构向上工作,直到达到最顶层的父级或舞台。
抄袭自:ActionScript 3.0事件处理简介

谢谢。你觉得能不能解释一下它们的用途,可能附带一两个例子?当我点击嵌套的MovieClip时会发生什么? - aaaidan
链接应为:http://www.adobe.com/devnet/actionscript/articles/event_handling_as3.html - Mike Stead

0
前一段时间,我写了几篇关于事件传播、Flash 中自定义事件等方面的文章。
您可以在这里找到这篇文章,以及源代码和工作示例:

http://www.popamihai.com/2010/10/flex/event-propagation-capturing-phase-targeting-phase-and-bubbling-phase/

捕获阶段是从外到内发生的,从最外层的父容器(在本例中为Application标签)到目标对象的直接父级(VGroup标签)。

在检查所有祖先监听器之后,Flex开始进行目标定位阶段

目标定位阶段是事件传播机制中的第二个阶段,在此阶段中,Flex会检查目标对象本身的事件监听器。

事件传播机制的第三个也是最后一个阶段是冒泡阶段。在目标定位阶段之后,Flex现在检查目标对象的所有父容器是否有事件监听器。这个检查是从内向外进行的,从目标对象的直接父级到最外层父容器 - 在本例中为Application标签。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接