FLEX module的使用

來源:互聯網
上載者:User

用FLEX來開發應用難免不了要使用到Module,FLEX組件提供了ModuleLoader組件,該組件使用方式類似與swfLoader,但是通常僅僅使用該組件並不能滿足我們的需求,這時FLEX為我們提供了ModuleManager,可以實現動態載入不同的模組。

 

module分為兩種,一種是完整的,一種是關聯到主程式的,在建立Module時可以選擇module swf size

1.完整的module會將所有用到的引用編譯進來因而比較大,這個一般會比較少用到。

2.關聯到主程式的則不會將主程式的引用編譯進來,因而會比較小,但是引用別的模組就不同了。

 

在使用FLEX模組時有幾點需要注意的地方
1.module內不可以訪問別的module的對象但是可以訪問主程式的對象引用
2.不要在主程式中建立模組的引用,這樣模組還是會被載入到主程式中,模組的意義也就沒了。
3.module內的組件的初始化實在ModuleEvent.READY事件之後,所以不能在ModuleEvent.READY事件裡直接存取module內的組件

 

為了在主程式中使用module對象來操作module內的一些行為,這時可以將module對象在主程式中轉換成object類型,然後儲存引用,或者讓module實現一個介面,然後儲存該介面的引用。

然而使用object類型無法知道內部公開的方法,但使用介面就沒有此問題

 

在使用FLEX提供的動態載入module功能時我們需要用到一下3個類
 ModuleManager,IModuleInfo,ModuleEvent
      ModuleManager 內有一個管理各個module的map,ModuleManager 在載入module之前會判斷他是否已經存在,如果存在則不會再次載入通過ModuleManager.getModule(URL)方法我們可與擷取到ModuleManager的內部類ModuleInfoProxy的對象,ModuleInfoProxy實現了IModuleInfo介面,因此我們可以通過IModuleInfo介面來儲存ModuleInfoProxy內部類的對象對象進行系列的操作。

有關ModuleManager,IModuleInfo,ModuleEvent的詳細資料見協助文檔。

 

如何動態載入module:
 1.通過ModuleManager.getModule(URL)擷取與特定 URL 關聯的 IModuleInfo 介面。
_moduleInfo=ModuleManager.getModule("com/myMusic/nominateMusicModule/NominateMusic.swf");
 2.為載入module的各個過程添加事件監聽
 _moduleInfo.addEventListener(ModuleEvent.READY, onModuleReady);
 _moduleInfo.addEventListener(ModuleEvent.SETUP, onModuleSetup);
 _moduleInfo.addEventListener(ModuleEvent.UNLOAD, onModuleUnload);
 _moduleInfo.addEventListener(ModuleEvent.PROGRESS, onModuleProgress);
 3.調用loader方法執行載入動作
 _moduleInfo.load(); //載入Module

 

 

對於一個較大型的Flex RIA應用,產生的 swf檔案的體積必然不會小, 在中國這樣艱苦的網路環境下面,不得不考慮如何讓使用者減少等待的時間. 這樣就需要把一個大的Flex程式分成各個不同的功能組件, 每個Module單獨編譯成一個 SWF ,需要的時間,再動態載入調用.減小主程式的體積.

具體的做法是:
 使用 mx.modules.ModuleLoader 可以進行Module動態載入.

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.