Flex中Module間的通訊和在Application中的切換

來源:互聯網
上載者:User

 

最近在學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

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.