需要分配监听调度它的对象。从你的代码,目前还不清楚是做什么的 - 但是,例如,在主:
//类主要
var _newClass:NewClass = new NewClass();
_newClass.addEventListener("my_event"), handler);
,然后分派事件的NewClass
//class NewClass
this.dispatchEvent(new Event("my_event"));
现在,你似乎正在发射事件,但是你将侦听器添加到了错误的对象(在这种情况下,我认为Main类,它不是也在进行调度)。
注意 - 如果您在NewClass的构造函数中分派事件,您可能会错过该事件,因为在事件发生后您将分配侦听器。所以在别处开火。
正如@redconservatory指出,和@Prototypical,气泡可以在这种情况下被利用。但是,有一些限制。
通常情况下,如果在eventListener方法sig中使用use_capture参数== false
(缺省值),那么确实需要直接针对某个对象接收事件。为了使冒泡阶段:
this.addEventListener("my_event", handler, true); //use_capture == true
分派事件现在将成为活动的符合条件的目标,因为它“泡沫”备份层次结构中的儿童的家长。在这种情况下,@ redconservatory的答案是正确的。这里的重要例外是冒泡只适用于DisplayObjects。 NewClass必须将DisplayObject或一个祖先和扩展到显示列表中,冒泡才能正常工作。
从LiveDocs中
捕获和冒泡发生,因为从节点事件对象移动到显示列表节点:捕捉和儿童对父母的起泡家长对孩子。这个过程与继承层次无关。除了定位阶段之外,只有DisplayObject对象(容器和控件等可视对象)可以具有捕获阶段和冒泡阶段。
有关事件传播这个非常重要的主题的完整讨论 - 请查看introduction to event handling。
这个答案和关于其他答案冒泡的信息应该可以合并为一个最终答案。两者都可以工作(假设他的导航菜单真正连接到主类),但排除任一解决方案似乎都不正确。我会建议解释一些冒泡。 – prototypical 2011-05-25 18:36:34