需要分配監聽調度它的對象。從你的代碼,目前還不清楚是做什麼的 - 但是,例如,在主:
//類主要
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