对于一个较大型的Flex RIA应用,生成的 swf文件的体积必然不会小, 在中国这样艰苦的网络环境下面,不得不考虑如何让用户减少等待的时间. 这样就需要把一个大的Flex程序分成各个不同的功能部件, 每个Module单独编译成一个 SWF ,需要的时间,再动态的加载调用.减小主程序的体积.
具体的做法是:
使用 mx.modules.ModuleLoader 可以进行Module动态加载.
主程序:
- <?xml version="1.0"?>
- <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
- <mx:Button label="Load a Module" click="go();"/>
- <mx:Button label="Call the Module" click="callModule()"/>
- <mx:Script>
- <![CDATA[
- import mx.modules.ModuleLoader;
- import mx.events.IndexChangedEvent;
- import MsgManager;
- private var ld:ModuleLoader;
- public function go():void
- {
- ld = new ModuleLoader();//初始化ModuleLoader...
- ld.url = 'MsgManager.swf';//注意是编译完成之后的URL 即SWF文件 (设置URL值即可完成Load)
- this.addChild(ld);
- }
- public function callModule():void
- {
- this.dispatchEvent(new Event('PT'));//向自己派发 事件 ,调用MsgManager中的函数
- }
- public var na:String = 'Parent';//此属性用来测试子Module的调用
- ]]>
- </mx:Script>
- </mx:Application>