Actionscript 3 如何正确地从阶段引用调度事件

Actionscript 3 如何正确地从阶段引用调度事件,actionscript-3,actionscript,Actionscript 3,Actionscript,我有时会面临以下问题,但我总是无法克服 我猜解决方案必须以不同的方式提供,但我想找出这种代码不起作用的原因 情景: Main类是Main.as,其中有一个Sprite1实例添加到了主显示列表中。 还有一个MyCustomClass实例,它引用构造函数中的Stage,以便能够分派MyCustomClass.ABC事件 (在MyCustomClass中) 然后,在我的Main中,sprite1实例被放置在Main的显示列表中,我想要监听这个由stage类引用从MyCustomClass内部调度的My

我有时会面临以下问题,但我总是无法克服

我猜解决方案必须以不同的方式提供,但我想找出这种代码不起作用的原因

情景:

Main类是Main.as,其中有一个Sprite1实例添加到了主显示列表中。 还有一个MyCustomClass实例,它引用构造函数中的Stage,以便能够分派MyCustomClass.ABC事件

(在MyCustomClass中)

然后,在我的Main中,sprite1实例被放置在Main的显示列表中,我想要监听这个由stage类引用从MyCustomClass内部调度的MyCustomClass.ABC事件

最后,如果我在Main.as中放入以下代码:

sprite1.addEventListener(MyCustomClass.ABC, onABC);
它不工作,所以我必须在主类中通过阶段引用直接订阅此事件

stage.addEventListener(MyCustomClass.ABC, onABC);
我认为在捕获阶段,事件会从Stage传播到所有子级,而sprite1实例是Main的子级,也就是Stage的子级。所以,对我来说,这应该是可行的,但事实并非如此

我在这个项目中创建了一个描述displayList上对象的图像。请看 链接


提前感谢您对它不起作用的任何解释。它不适用于我传递给侦听器(捕获)或分派器(冒泡)的任何参数。

捕获阶段事件从一个目标到另一个阶段,冒泡阶段从一个阶段到另一个阶段。当阶段是目标时,显示列表中的任何对象都无法捕获该已调度事件,因为它们不能包含在事件阶段中。目标(阶段)进入阶段,然后返回目标(阶段),两者之间没有任何东西可以捕捉事件


通常,当使用stage分派事件时,程序员希望利用stage全局性质(可以争论的设计),但在这种类型的设计中,这也意味着只有stage应该侦听自己的分派。

事件传播不是这样工作的,在这里,请勾选以下内容:,什么是需要使用阶段来调度事件?阶段(很可能)与MyCustomClass的活动无关。这看起来是个糟糕的设计。我仍然认为捕获阶段的事件会从一个阶段到另一个目标,并与冒泡相反,但正如您在我的案例中提到的,阶段是目标,所以感谢您的提示-我意识到不会注意到任何对象。
stage.addEventListener(MyCustomClass.ABC, onABC);