`
zhanghan
  • 浏览: 191467 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

Flex之模块化

    博客分类:
  • Flex
阅读更多
如果做一个很大的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代码
<?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> 

<?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代码
<?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模块化开发是一种高效、可扩展的软件架构方式,它允许开发者将大型应用程序分解为多个独立的、可重用的组件或模块。在本案例中,“flex 模块化 modules 源码”指的是使用Adobe Flex框架进行模块化编程的具体实现...

    Flex模块化开发实例

    Flex模块化开发是一种高效构建大型复杂应用的策略,它允许我们将应用程序分解为多个独立的、可重用的组件或模块,以提高代码的可维护性和可扩展性。在这个实例中,我们将深入探讨Flex模块化开发的关键概念和技术。 ...

    flex 模块化 modules文档

    创建Flex模块涉及到几个关键步骤: 1. **定义模块**:首先需要定义一个模块,通常这涉及创建一个新的Flex项目,并指定其为主模块或普通模块。 2. **实现`IFlexModuleFactory`接口**:每个模块都必须包含一个实现了`...

    Flex 模块化应用程序开发

    ### Flex 模块化应用程序开发 模块化设计在软件工程领域有着重要的意义,尤其是在像Flex这样的框架中。Flex是一款由Adobe公司开发的开源框架,用于构建高性能、具有丰富交互性的Web应用程序。通过采用模块化的开发...

    eclipse项目中同时开发j2ee模块和flex客户端模块

    要在同一个Eclipse项目中同时开发J2EE和Flex模块,首先需要确保Eclipse已经配置了J2EE和Flex的开发环境。这可能包括安装Java EE和ADT插件,以及配置相应的服务器(如Tomcat、Glassfish等)和Flash Builder。 5. **...

    Flex4基于FluorineFx模块化系统框架

    **Flex4基于FluorineFx模块化系统框架详解** Flex4是Adobe开发的一款用于创建富互联网应用程序(RIA)的框架,它提供了强大的图形和用户界面设计能力,以及高效的客户端和服务器通信机制。FluorineFx是.NET平台上最...

    flex 代码格式化

    这些包可能包含格式化代码所需的功能模块,例如自动化对齐工具或者代码风格检查器。将它们放在正确的目录结构中是确保这些工具在项目中正确工作的重要步骤。在引入之后,重启工具确保新引入的组件被加载并生效。 ...

    FLEX4025十六通道热电阻温度采集模块用户手册-V1.0.pdf

    FLEX-4015热电阻采集模块是FLEX-4000系列智能测控模块之一,广泛应用于温度/电阻测量的工业场合,提供了热电阻/电阻信号的采集以及转换,线性处理并转换成线性化的数据值,经RS-485 总线传送到控制器。FLEX-4015具有...

    Flex Module间通信

    Flex模块间通信是Adobe Flex应用程序开发中的一个重要概念,它允许不同模块之间共享数据、功能和服务。在大型项目中,模块化设计有助于代码组织和管理,提高代码复用性,同时降低复杂度。本示例将深入讲解如何在Flex...

    AB罗克韦尔FLEX-5000-IO模块.pdf

    AB罗克韦尔FLEX-5000-IO...通过这些详细知识点的介绍,可以看出AB罗克韦尔FLEX-5000-IO模块在工业自动化领域中所能提供的强大功能和高可靠性。它不仅是自动化工程师的好帮手,也是现代制造系统中不可或缺的组成部分。

    FlexCAN详解

    FlexCAN(Flexible Controller Area ...由于其灵活性和兼容性,FlexCAN模块也适用于多种其他场合,如医疗设备、航空航天和工业自动化等领域。在这些领域,实时性、稳定性以及对电磁干扰的抵抗能力都是至关重要的。

    flex窗口最大最小化

    在前端开发中,Flex布局(Flexible Box)是一种用于创建弹性盒模型的CSS3模块,它极大地简化了网页或应用程序中的复杂布局设计。本教程将详细讲解如何使用Flex来实现窗口的拖拽、最大化、最小化以及关闭功能,这些都...

    基于S32KDS平台SDK3.0编写的flexcan组件can fd测试例程

    综上所述,"基于S32KDS平台SDK3.0编写的flexcan组件can fd测试例程"涵盖了FlexCAN模块的配置、初始化、数据传输、错误处理等多个方面,是学习和评估S32K微控制器在CAN FD通信能力上的理想实践。通过运行和分析这个...

    Flex持续集成之单元测试

    Flex持续集成之单元测试是开发过程中一个至关重要的环节,它主要关注的是Flex应用程序的模块化测试,确保每个独立的代码单元都能正常工作。通过单元测试,开发者可以预先发现和修复问题,提高代码质量和稳定性,同时...

    Flex电源模块推出面向工业应用的微型DC-DC转换器

    Flex电源模块(Flex Power Modules)推出了面向工业应用的微型DC-DC转换器系列:PUA-A、PUC-B和PUB-M。这些新器件均为隔离式转换器,可提供高达1W的输出功率,而无需负载。 在满载情况下,它们的典型效率为84%(PUA...

    Flex 4 高级编程 Flex 4 高级编程

    7. **模块化开发**:Flex 4 支持模块化编程,可以将大型应用拆分为多个独立的模块,分别编译和加载,有效减小初始加载时间,提升性能。 8. **性能优化**:Flex 4 对内存管理和渲染性能进行了优化,例如使用位图缓存...

Global site tag (gtag.js) - Google Analytics