2010-01-02 44 views
0

我有一個<mx:Application>其中包含<mx:Module>。該模塊有幾個子模塊。它也有一些我創建的類的實例。我試圖讓這個類的方法派發一個可以被模塊「聽到」並處理的事件。這沒有發生。如何從創建的類派遣自定義事件?

任何想法?

爲了更清楚起見,我使用了'dispatchEvent'來從類方法內部。這個類有一個實例:mx.core.Application.myapplication.mymodule.myclass

這是調用事件的'myclass.somefunction'。我在'mymodule'中註冊了一個監聽器。但是,當函數/方法運行時沒有任何反應。

+0

重寫您的問題。很難弄清楚你的要求 – 2010-01-02 03:51:11

回答

2

如果你的類是一個顯示對象,你需要設置你的事件在顯示鏈上「冒泡」並在應用程序或模塊類中監聽它。除非您使用某種單例或(像PureMVC)外觀來「抓取」所有事件並根據這些事件執行操作,否則事件不是應用程序範圍的。所以,當您創建新事件調度:

//Event(type:String, bubbles:Boolean = false, cancelable:Boolean = false) 
var event:Event = new Event("custom_event_name", true); 
dispatchEvent(event); 

在您的應用程序,你會聽它作爲應用類本質的SWF的根。

addEventListener(「custom_event_name」,customEventHandler);

customEventHandler可以調用模塊中的函數。

如果您是從類內部調度而類不是顯示對象,則可以將事件偵聽器添加到類的實例(mx.core.Application.myapplication.mymodule.myclass)中,而不是模塊。

相關問題