最近在學Flex時遇到一個比較煩人的問題,就是題目所說的。
更鬱悶的是GOOGLE了挺久還是沒篩選到合適的東西,好在後來有群主的協助,才搞定了這個問題。自己也簡單示範了一下。先說說自己的理解吧,通俗版的。
1、本例要講述的是如何在一個Application中實現模組間的卻換,並且實現模組間的通訊(互連)。具體的通訊過程是Module01複雜接收輸入-->Module02負責顯示輸出-->Module02返回到Module01
2、如何?Module01和Module02的通訊,這就要藉助Application中的變數作為臨時中介,並通過Module01-->ModuleLoader-->擷取資料並處理-->ModuleLoader-->Module02,這是單程,回程也是相差不多。
3、比較好的實現方法就是建立一個"自訂事件",標註從Module中發出的不同訊息的意義,一個就足夠了。在自訂事件裡我聲明了一個Object類型變數,該變數用於儲存你要傳遞的訊息,當然也可以通過下面的IEventDispatcher來實現。不同的是,訊息負責裡層到外的捕獲,可能是利用訊息的冒泡機制吧,然後IED是實現外到裡的資料的傳遞,不過這我覺得用事件派發也同樣可以實現,不過還沒去試過,時間派發也可以實現從外層到裡層滲透的。
還有實現IEventDispatcher事件派發介面,不同模組建立一個自己模組的介面,並且在Module中實現它。主要作用就是用來擷取ModuleLoader.child的對象的值,判斷是否為空白,空就是對應介面的對象沒有執行個體化成功,就是沒有載入成功。介面裡面的set方法可以用於接收資料(訊息)到模組中去。
4、ModuleLoader.ready事件用於判斷模組是否載入完成,完成就進行邏輯處理。這裡我們設計的是如果完成了,就放置監聽器監聽模組事件並且進行進一步處理。這裡利用的是ready的即時特性。其實要求不高可以放置在初始化方法中,起碼我們這裡就可以。
簡單示範一下,看是不是你想要的。
一、初始頁面:
二、進入模組一,並輸入資訊:
三、接收資訊並顯示:
四、返回到模組一:
最後請參考一下原始碼
http://download.csdn.net/source/1237888
參考文章:
http://hi.baidu.com/guodong828/blog/item/715e332d7c2aa531349bf769.html