如果做一个很大的Flex程序,比如程序文件有2,3M,一次性下载的话,就算是我的10M宽带也是需要一段时间。更别提普通的ADSL了。另外如果同时实例化太多的Flex控件,要占用很大的内存,浏览器(Flash Plugin)处理的时候会很慢,同时也会占很多的CPU资源。
难道Flex就不能开发大型应用了?还好Flex提供了Module的支持(我做OpenLaszlo的时候可没有这么幸运,只能自己开发Module支持,不过现在已经彻底放弃OpenLaszlo)。还是很简单的,困难的是如何分割模块。
创建Module。就像创建其他组件一样,只不过标记换成了 mx:Module。Module本身和Application基本一样。如果使用Flexbuilder的话,你的Bin-Debug(通常)里会多一个和Module的文件名的swf。
<?xml version="1.0" encoding="utf-8"?>
<mx:Module xmlns:mx="http://www.adobe.com/2006/mxml"
layout="vertical" creationComplete="onCreationComplete()">
<mx:Script>
<![CDATA[
//ActionScript Code Here...
]]>
</mx:Script>
...
<mx:Button id="btn" click="{Alert.show('' + event)}" label="Button"/>
</mx:Module>
重点是如何调用Module。有两种方式可以调用Module,一种是使用mx:ModuleLoader,另一种是使用ModuleManager。第一种其实仅仅是封装了第二种方式而已。mx:ModuleLoader 相对比较简单,只需要把它实例化到你需要的地方,指定Module的URL就可以了。ModuleManager相对复杂一些,但是更灵活。关键(Key point)代码如下。完整代码见附件。
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" applicationComplete="init()">
<mx:Script>
<![CDATA[
...
private function useModuleLoader(event:Event):void{
trace(event.type);
if(ml.url == null){
//Key point
ml.url="UserList.swf"
ml.loadModule();
}
}
...
private var module:IModuleInfo;
private function useModuleManager(event:Event):void{
trace(event.type);
//Key point
module = ModuleManager.getModule("UserList.swf");
module.addEventListener(ModuleEvent.READY, onModuleReadyUseModuleManager);
module.load();
}
...
]]>
</mx:Script>
<mx:VBox id="container" width="100%" height="100%">
<mx:Button id="loadUseModuleLoaderButton" label="Load Use ModuleLoader" />
<mx:Button id="loadUseModuleManagerButton" label="Load Use ModuleManager" />
...
<mx:ModuleLoader id="ml" width="300" />
</mx:VBox>
</mx:Application>
分享到:
相关推荐
flex 模块化 modules文档,详细介绍如何建立模块化
flex 模块化 modules 源码
Flex模块化开发实例adsfasdfasdfasdfasdfasdfasdfjasdjfasdjf按时大法师的发生地方
Flex 模块化应用程序开发,本人博客中还有更多详细信息 http://gaobo403163953.blog.163.com
1、模块化的定义与原理; 2、模块化的作用; 3、模块化的优点; 4、flex与模块通信,直接调用模块(module)方法及示例代码; 5、flex基本控件用法及示例代码; 6、委托、上传文件、操作Word和Excel等等
FLEX-4015热电阻采集模块是FLEX-4000系列智能测控模块之一,广泛应用于温度/电阻测量的工业场合,提供了热电阻/电阻信号的采集以及转换,线性处理并转换成线性化的数据值,经RS-485 总线传送到控制器。FLEX-4015具有...
使用最新vs2010、FlashBuilder4.5、FluorineFx搭建的web管理系统框架,实现了动态模块加载,FluorineFx数据交互。
Flex电源模块(Flex Power Modules)推出了面向工业应用的微型DC-DC转换器系列:PUA-A、PUC-B和PUB-M。这些新器件均为隔离式转换器,可提供高达1W的输出功率,而无需负载。 在满载情况下,它们的典型效率为84%(PUA...
FLEX-3015模拟量采集模块是FLEX-3000系列智能测控模块之一,广泛应用于各种工业现场,提供了模拟量信号的采集以及转换,线性处理并转换成线性化的数据值,经RS-485 总线传送到控制器。FLEX-3015具有八个测量通道,可...
当前页面左侧导航根据根据...内容包含:页面基础排版(flex/column-count)布局、按钮系列组、表格系列、进度条、分页、表单、 文本编辑器、统计图表、TAB选项卡、CSS3基础动画及第三方弹层插件等常见页面使用元素。
它与其它框架最主要的不同是框架的作用域: 它像其它小型的 IOC 框架一样为简单程序提供了易用性,而且也为大型、复杂和模块化的程序提供了许多特性,如:支持 Flex 模块、对象清理和大量的扩展点.
FLEX-4015热电阻采集模块是FLEX-4000系列智能测控模块之一,广泛应用于温度/电阻测量的工业场合,提供了热电阻/电阻信号的采集以及转换,线性处理并转换成线性化的数据值,经RS-485 总线传送到控制器。FLEX-4015具有...
通过flex的模块化功能,实现页面的控制,利用spring jdbc 包实现在数据操作 用户管理模块
该 I/O 灵活性高、价格低且采用模块化设计,非常适合分布式应用。FLEX I/O 具有大型机架式 I/O 的全部功能,并且没有空间要求。您可根据具体的应用需求单独选择 I/O、端子类型和网络。两个单独的现场电源连接端子让...
PureMVC是在基于模型,视图和控制器MVC模式建立的一个轻量级的应用框架,而且是免费的,它最初是执行的ActionScript 3语言使用的Adobe Flex、Flash和...而多版本允许多个PureMVC应用运行在同一个虚拟机进行模块化编程。
Power Flex 70 AC Drive应用介绍_罗克韦尔Power Flex 700变频器教程(4)flv,罗克韦尔自动化推出的A-B PowerFlex交流变频器系列产品功能强大,控制灵活,可以满足全球任何行业的需要。PowerFlex交流变频器在多个平台...
第4章 Flex模块化编程 第5章 ActionScript 3精要 第6章 Flex图表 PART 3 Flex 3 Web项目全案开发 第7章 Flex企业级开发实践—— Flex + Struts 第8章 Flex企业级开发实践—— Flex + Web Services PART 4 ...