Flex module用法指南
在學習Flex的過程中,你可能會遇到Flex module的使用方面的問題,用Flex來開發(fā)應用難免不了要使用到Module,F(xiàn)lex組件提供了ModuleLoader組件,該組件使用方式類似與swfLoader。
Flex module的使用
用Flex來開發(fā)應用難免不了要使用到Module,F(xiàn)lex組件提供了ModuleLoader組件,該組件使用方式類似與swfLoader,但是通常僅僅使用該組件并不能滿足我們的需求,這時Flex為我們提供了ModuleManager,可以實現(xiàn)動態(tài)的載入不同的模塊。
◆Flex module分為兩種,一種是完整的,一種是關(guān)聯(lián)到主程序的,在新建Flex module時可以選擇moduleswfsize
1.完整的module會將所有用到的引用編譯進來因而比較大,這個一般會比較少用到。
2.關(guān)聯(lián)到主程序的則不會將主程序的引用編譯進來,因而會比較小,但是引用別的模塊就不同了。
◆在使用Flex模塊時有幾點需要注意的地方
1.Flex module內(nèi)不可以訪問別的module的對象但是可以訪問主程序的對象引用
2.不要在主程序中創(chuàng)建模塊的引用,這樣模塊還是會被加載到主程序中,模塊的意義也就沒了。
3.module內(nèi)的組件的初始化實在ModuleEvent.READY事件之后,所以不能在ModuleEvent.READY事件里直接訪問module內(nèi)的組件
為了在主程序中使用module對象來操作module內(nèi)的一些行為,這時可以將module對象在主程序中轉(zhuǎn)換成object類型,然后保存引用,或者讓module實現(xiàn)一個接口,然后保存該接口的引用。
然而使用object類型無法知道內(nèi)部公開的方法,但使用接口就沒有此問題
◆在使用Flex提供的動態(tài)的載入module功能時我們需要用到一下3個類
ModuleManager,IModuleInfo,ModuleEvent
ModuleManager內(nèi)有一個管理各個module的map,ModuleManager在加載module之前會判斷他是否已經(jīng)存在,如果存在則不會再次加載通過ModuleManager.getModule(URL)方法我們可與獲取到ModuleManager的內(nèi)部類ModuleInfoProxy的對象,ModuleInfoProxy實現(xiàn)了IModuleInfo接口,因此我們可以通過IModuleInfo接口來保存ModuleInfoProxy內(nèi)部類的對象對象進行系列的操作。
有關(guān)ModuleManager,IModuleInfo,ModuleEvent的詳細信息見幫助文檔。
◆如何動態(tài)的載入Flex module:
1.通過ModuleManager.getModule(URL)獲取與特定URL關(guān)聯(lián)的IModuleInfo接口。
_moduleInfo=ModuleManager.getModule("com/myMusic/nominateMusicModule/NominateMusic.swf");
2.為加載module的各個過程添加事件監(jiān)聽
_moduleInfo.addEventListener(ModuleEvent.READY,onModuleReady);
_moduleInfo.addEventListener(ModuleEvent.SETUP,onModuleSetup);
_moduleInfo.addEventListener(ModuleEvent.UNLOAD,onModuleUnload......
【編輯推薦】
- Flex頁面跳轉(zhuǎn)實現(xiàn)的幾種方式
- FlexBuilder4十大新特性閃亮登場
- Flex框架中Cairngorm和Mate的優(yōu)點大比拼
- FlexBuilder3.0與Eclipse3.4的***結(jié)合
- 解析Flex應用開發(fā)步驟 新特性和技術(shù)框架