There're two ways of loading and unloading modules:
ModuleLoader - higher level API
ModuleManager - lower level API
1. Using ModuleLoader
1) define a ModuleLoader
<mx:ModuleLoader id="moduleLoader"/>
2) when the button of loading the module is clicked
moduleLoader.url = "SimpleModule.swf";
moduleLoader.loadModule();
3) add module load ready listener
moduleLoader.addEventListener( ModuleEvent.READY, moduleReadyHandler);
4) define the listener method
private function moduleReadyHandler( event: ModuleEvent ): void {
trace("SimpleModule is loaded");
}
5) to unload a module
moduleLoader.unloadModule();
2. Using ModuleManager
1) load the module and specify the ready event listener
info = ModuleManager.getModule("SimpleModule.swf");
info.addEventListener(ModuleEvent.READY, moduleReadyHandler);
info.load();
2) unload the module by using the same info object
info.addEventListener(ModuleEvent.UNLOAD, moduleUnloadHandler);
info.unload();
No matter what method is used, we need to make sure when the loaded Module is safe for communication. Here is how to do it: by add a creationComplete listener in moduleReadyHandler.
moduleLoader.child.addEventListener(FlexEvent.CREATION_COMPLETE,
moduleCreationCompleteHandler);
inside moduleCreationCompleteHandler:
protected function moduleCreationCompleteHandler(event:FlexEvent):void
{
moduleLoader.child.removeEventListener(FlexEvent.CREATION_COMPLETE,
moduleCreationCompleteHandler);
// further processings...
}
Someone might encounter the memory leak issue when trying to unload a module. This is a nice article to look into:
http://blogs.adobe.com/aharui/2009/08/what_we_know_about_unloading_m.html
分享到:
相关推荐
自定义的loading,可以代替Flex的默认loading。
在Flex工程中添加Module的方法是:在FlashBuilder中右键工程目录->Porperties->Flex Modules, 然后就可以add/edit/remove需要的module了, 但问题 是无论添加多少module都要点击add按钮一个一个添加! 像我们的项目一...
Out of memory-cannot load design mode
flex 模块化 modules 源码
flex 模块化 modules文档,详细介绍如何建立模块化
网上找了很多都不完整,上传一个工程给大家分享,采用子类加载swf或者gif的方式显示loading ,gif或者swf文件可以随意换成自己喜欢的。如果需要百分比显示的话可能还需要修改一下代码。 ===========================...
flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图...
FLEX特效FLEX特效FLEX特效FLEX特效 FLEX特效FLEX特效FLEX特效FLEX特效 FLEX特效FLEX特效FLEX特效FLEX特效 FLEX特效FLEX特效FLEX特效FLEX特效
Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex ...
the challenges related to managing large volumes of networked data or lazy loading that becomes important in these scenarios. Chapter 14: Facilitating Audio and Video Streaming Rich Web 2.0 ...
Flex简介Flex简介Flex简介Flex简介Flex简介
flex事件flex事件flex事件flex事件flex事件
flex 精通 flexflex 精通 flexflex 精通 flexflex 精通 flexflex 精通 flexflex 精通 flexflex 精通 flexflex 精通 flexflex 精通 flexflex 精通 flexflex 精通 flexflex 精通 flexflex学习的好资源啊
Flex 组件Flex 组件Flex 组件Flex 组件Flex 组件
java flexjava flexjava flex
Flex万年历记事本_flex源码
模块(Module)是创建大型Flex应用程序的一个解决方案,它允许你将你的用户接口分割成许多分散的有各自用途的小块。例如(下面出自Flex 2的文档),一个保险公司可能有数百个表单——针对于各个领域的,针对各种请求...
Flex相册 Flex图片
flex设计模式flex设计模式flex设计模式flex设计模式flex设计模式flex设计模式flex设计模式flex设计模式flex设计模式flex设计模式flex设计模式flex设计模式flex设计模式flex设计模式flex设计模式flex设计模式
flex皮肤flex皮肤flex皮肤flex皮肤flex皮flex皮肤肤