在学习Flex的过程中,你可能会遇到Flex模块化方面的问题,这里和大家分享一下,Flex模块化可创建Flex模块化应用程序,是提高Flex框架性能的重要方面,提供更多能力控制下载时间和文件大小。
Flex模块化学习总结
关于这篇文章:写这篇文章的目的是总结一下我在Flex模块化开发时所遇到的问题由浅到浅地介绍,并不是什么特别的东西,只是老了,怕自己不记得就记下来,为什么要公开,是想看能不能帮助一些人,那样就心安啦,写的不好大家见谅,之所以分三篇没什么特别的意义,只是在blog放不下,再次请大家见谅。
1:为什么要Flex模块化
Flex模块化提供了分离应用程序代码到不同的swf文件上以便减少下载时间和文件大小。使用Modules的好处是:
1.主应用程序开始时不需马上下载modules。应用程序会根据需求载入和卸载modules。
2.由于每个modules独立于其他应用程序modules,当需要改变一个modules时,你只需要重编译这个modules而不是整个应用程序。
Flex模块化可创建Flex模块化应用程序是提高Flex框架性能的重要方面,提供更多能力控制下载时间和文件大小,使用modules,你可以根据哪些可被独立载入,哪些可被其他程序使用而分离应用程序代码,
2:如何Flex模块化
2.1创建模块
基于mxml的模块,在你的工程右键->new->mxmlModule
- <?xmlversionxmlversion="1.0"encoding="utf-8"?>
- <mx:Modulexmlns:mxmx:Modulexmlns:mx="http://www.adobe.com/2006/mxml"
- layout="absolute"width="400"height="300">
- </mx:Module>
◆基于as的模块
- package
- {
- importmx.modules.Module;
- publicclassGeneralextendsModule
- {
- publicfunctionGeneral()
- {
- super();
- }
- }
- }
2.2Flex模块化中加载模块
2.2.1使用ModuleLoader加载
- <mx:ModuleLoaderurlmx:ModuleLoaderurl="ContactList.swf"/>
2.2.2使用ModuleManager加载
- PrivatefunctioncreationHandler():void
- {
- _moduleInfo=
- ModuleManager.getModule('ContactList.swf'
- );
- _moduleInfo.addEventListener(ModuleEvent.READY,
- moduleLoadHandler);
- _moduleInfo.load();
- }
- PrivatefunctionmoduleLoadHandler(evt:ModuleEvent):void
- {
- canvas.addChild(_moduleInfo.factory.create()as
- DisplayObject);
- }
2.2.3创建弹出模块
- Vargeneral:ModuleLoader
- general=ModuleLoader(mx.managers.PopUpManager.createPopUp(this,ModuleLoader));
- general.url="General.swf";
注意:在创建弹出模块时,有时会产生:无法将mx.managers::PopUpManagerImpl@bba9941转换为mx.managers.IPopUpManager这种错误,这个时候我们需要在主程序里引入
- importmx.managers.IPopUpManager;
- privatevaripopUp:IPopUpManager
【编辑推荐】
- Flex页面跳转实现的几种方式
- FlexBuilder4十大新特性闪亮登场
- Flex框架中Cairngorm和Mate的优点大比拼
- FlexBuilder3.0与Eclipse3.4的***结合
- 解析Flex应用开发步骤 新特性和技术框架