新聞中心
在學(xué)習(xí)Flex的過程中,你可能會(huì)遇到Flex module的使用方面的問題,用Flex來開發(fā)應(yīng)用難免不了要使用到Module,F(xiàn)lex組件提供了ModuleLoader組件,該組件使用方式類似與swfLoader。

Flex module的使用
用Flex來開發(fā)應(yīng)用難免不了要使用到Module,F(xiàn)lex組件提供了ModuleLoader組件,該組件使用方式類似與swfLoader,但是通常僅僅使用該組件并不能滿足我們的需求,這時(shí)Flex為我們提供了ModuleManager,可以實(shí)現(xiàn)動(dòng)態(tài)的載入不同的模塊。
◆Flex module分為兩種,一種是完整的,一種是關(guān)聯(lián)到主程序的,在新建Flex module時(shí)可以選擇moduleswfsize
1.完整的module會(huì)將所有用到的引用編譯進(jìn)來因而比較大,這個(gè)一般會(huì)比較少用到。
2.關(guān)聯(lián)到主程序的則不會(huì)將主程序的引用編譯進(jìn)來,因而會(huì)比較小,但是引用別的模塊就不同了。
◆在使用Flex模塊時(shí)有幾點(diǎn)需要注意的地方
1.Flex module內(nèi)不可以訪問別的module的對(duì)象但是可以訪問主程序的對(duì)象引用
2.不要在主程序中創(chuàng)建模塊的引用,這樣模塊還是會(huì)被加載到主程序中,模塊的意義也就沒了。
3.module內(nèi)的組件的初始化實(shí)在ModuleEvent.READY事件之后,所以不能在ModuleEvent.READY事件里直接訪問module內(nèi)的組件
為了在主程序中使用module對(duì)象來操作module內(nèi)的一些行為,這時(shí)可以將module對(duì)象在主程序中轉(zhuǎn)換成object類型,然后保存引用,或者讓module實(shí)現(xiàn)一個(gè)接口,然后保存該接口的引用。
然而使用object類型無法知道內(nèi)部公開的方法,但使用接口就沒有此問題
◆在使用Flex提供的動(dòng)態(tài)的載入module功能時(shí)我們需要用到一下3個(gè)類
ModuleManager,IModuleInfo,ModuleEvent
ModuleManager內(nèi)有一個(gè)管理各個(gè)module的map,ModuleManager在加載module之前會(huì)判斷他是否已經(jīng)存在,如果存在則不會(huì)再次加載通過ModuleManager.getModule(URL)方法我們可與獲取到ModuleManager的內(nèi)部類ModuleInfoProxy的對(duì)象,ModuleInfoProxy實(shí)現(xiàn)了IModuleInfo接口,因此我們可以通過IModuleInfo接口來保存ModuleInfoProxy內(nèi)部類的對(duì)象對(duì)象進(jìn)行系列的操作。
有關(guān)ModuleManager,IModuleInfo,ModuleEvent的詳細(xì)信息見幫助文檔。
◆如何動(dòng)態(tài)的載入Flex module:
1.通過ModuleManager.getModule(URL)獲取與特定URL關(guān)聯(lián)的IModuleInfo接口。
_moduleInfo=ModuleManager.getModule("com/myMusic/nominateMusicModule/NominateMusic.swf");
2.為加載module的各個(gè)過程添加事件監(jiān)聽
_moduleInfo.addEventListener(ModuleEvent.READY,onModuleReady);
_moduleInfo.addEventListener(ModuleEvent.SETUP,onModuleSetup);
_moduleInfo.addEventListener(ModuleEvent.UNLOAD,onModuleUnload......
分享名稱:Flexmodule用法指南
文章地址:http://m.5511xx.com/article/dhoegdc.html


咨詢
建站咨詢
