`

[转]Flex开发 Module优化

阅读更多
http://nianshi.iteye.com/blog/743823

Flex Module优化
文章分类:Flash编程
Module基本上可以分为两种:

1.完整的Module,可以被外部app所使用 -- 会将所有涉及到的引用编译到module中,主文件的体积得到缩减,但是Module本身的体积可能会很大,比如Module和主程序都应用了对象C,那对象C会被编译到主程序以及Module中,这样Module的体积就会很大。

2.关联到主程序的Module -- 比如Module和主程序都应用了对象C,那对象C会只编译在主程序中,从而减小Module的体积。我今天主要讲这一种Module,也是我们最常用到的。
了解了Module的种类,再简单说说使用Module要注意的地方。

1.绝对不能在Module以外的地方直接引用Module中的对象。这样Module会被编译到引用它的模块中去,如果从主程序中引用,那么Module就实际上没有效果了。

2.既然不能引用,那么建议对Module对象的使用用接口实现。在Module中实现接口方法,在外部使用这个接口不会导致Module被误编译。

3.Module可以引用主程序中的东西,但是不要引用其他Module中的东西。

Module可以做什么呢?我主要将Module用于以下下两种情况

1.缩减主程序的体积,点击Module功能块时加载Module.
2.再入主程序后在用户感觉不到的情况下预加载剩下的Module.


现在讲正题,在demo中我这样表现Module的使用。(为了体现Module的意义,主程序生成的大小是原始flex大小248K, module内嵌了两张图片是674K)

1.如何创建Module.
2.主程序中点击按钮加载Module PictureWindow.
3.加载完毕后将模块添加到Box中,并通过接口调用PictureWindow中的方法setSelectIndex()设置显示的图片。

1. 如何创建Module.

可以通过New --> MXML Module -->Optmize for applicaiton --> OK 或者修改任意的已经创建好的Container组建(比如Canvas, panel)标签为Module,再或者继承Module的As class。

之后确保“鼠标右键项目”--> Property --> Flex Module  中有这个Module,没有的话点Add --> 选择Module的mxml或as文件 -->Optmize for applicaiton -- > OK

2. 主程序中点击按钮加载模块PictureWindow.

这里我使用了ModuleManager来动态加载需要的Module。这比ModuleLoder要灵活的多。

private function loadModule():void{
      m = ModuleManager.getModule("PictureWindow.swf"); //设置Module地址,地址是编译后swf在bin中的位置
      //设置事件监听
      m.addEventListener(ModuleEvent.READY,loadReady);
      m.addEventListener(ModuleEvent.PROGRESS,loadReady);
      m.addEventListener(ModuleEvent.ERROR,loadError);
      m.load(); //加载Module
}


3. 加载完毕后将模块添加到Box中,并通过接口调用PictureWindow中的方法setSelectIndex()设置显示的图片。

PictureWindow实现了PictureWindowInterface接口,其中暴露了setSelectIndex方法。再次强调不要直接使用Module对象,如果我们不注意写成
var window:PictureWindow = e.module.factory.create() as PictureWindow,那整个Module就前功尽弃了

//Module加载完成
  private function loadReady(e:ModuleEvent):void{
   //将Module对象转换为PictureWindowInterface
   var window:PictureWindowInterface = e.module.factory.create() as PictureWindowInterface
   this.box.addChild(window as DisplayObject);
   window.setSelectIndex(1); //通过Interface调用Module中的方法
}
分享到:
评论

相关推荐

    Flex 基于Module模块的开发资料完整版

    Flex 基于 Module 模块的...在实际开发中,运用 Flex 的模块化开发方式,可以构建复杂且可扩展的用户界面,同时优化应用程序的性能和维护性。通过合理地组织模块,可以确保代码结构清晰,便于团队协作和项目长期维护。

    Flex 加载 Module

    本文将深入探讨Flex加载Module的相关知识点,以及如何利用客户端缓存来优化性能。 1. **Flex模块(Module)**:在Flex应用中,模块是可重用的、可动态加载的SWF组件。它们是独立的代码单元,可以在运行时被添加到主...

    flex module ppt

    【Flex Module PPT详解】 ...总结起来,Flex Module 和RSLs都是Flex开发中的重要工具,它们分别解决了代码组织、启动速度和资源共享的问题。理解并灵活运用这两个特性,能够显著提升Flex应用程序的质量和性能。

    Flex添加Module .actionScriptProperties文件自动生成 在此文件中添加 <modules>

    在Flex开发中,模块化(Module)是一种优化大型应用程序架构的有效方法。它允许我们将复杂的项目分解为多个独立的、可重用的组件,每个组件都称为一个模块。这样做可以提高代码的可维护性和可扩展性,同时降低加载...

    flex中moduleLoader加载module时传递参数源代码

    在Flex开发中,`ModuleLoader` 是一个关键组件,它允许开发者动态地加载MX模块(即Flex模块,独立的SWF文件)。`ModuleLoader` 的主要功能是将模块的加载过程与应用程序的其余部分分离,这有助于实现代码的模块化和...

    flex 面试题flex

    2. Flex开发框架及优缺点: - Cairngorm:Adobe官方出品,稳定且无明显bug,但应用较为复杂,编码量大,不适用于敏捷开发。 - PureMVC:广泛应用,适合中小型项目,基于MVC模式,有中央存储器的单件类设计。 - ...

    避免Flex RSL重复load 提高module加载性能的swc

    总结来说,避免Flex RSL重复加载的关键在于合理使用SWC进行模块化开发,通过预加载策略和多模块架构优化加载性能。通过这些方法,可以有效地减少网络传输的负担,提高应用程序的启动速度和整体运行效率,为用户提供...

    flex module实例

    Flex模块(Flex Module)是Adobe Flex框架中的一个重要概念,它允许开发者将大型应用程序分解为多个独立的、可重用的组件,这些组件被称为模块。在Flex应用中,模块可以按需加载,从而优化应用程序的启动时间和内存...

    FLEX企业应用开发实战.part1

    本人从其他网站上下载的,333页全,看到CSDN上没有完整的版本,所以共享一下。...第9章 Flex企业应用性能优化 第10章 Flex企业应用开发的其他技术 附录 Flex Builder 中的项目如何迁移至Flash Builder

    Flex与ActionScript3程序开发

    目录: 第1篇 基础知识篇 ... 第4篇 性能优化篇 第17章 Module机制 第18章 RSL运行时共享库 第5篇 Flex通信篇 第19章 与JavaScript/AJAX通信 第20章 Flex与PHP通信 第21章 Flex与Java EE通信

    Adobe Flex迷你教程 -- 合理使用Module分割项目以及对Module的使用

    总的来说,Adobe Flex的Module机制为大型Flex项目提供了灵活的架构,使得开发、维护和优化变得更加高效。理解并熟练掌握Module的使用,对于提升Flex应用程序的质量和性能至关重要。通过实际操作和研究`...

    FLEX企业应用开发实战.part2

    本人从其他网站上下载的,333页全,看到CSDN上没有完整的版本,所以共享一下。...第9章 Flex企业应用性能优化 第10章 Flex企业应用开发的其他技术 附录 Flex Builder 中的项目如何迁移至Flash Builder

    Flex企业应用开发实战源代码

    首先介绍了Flex/Flash的工作机理和利用Flex开发企业级应用必须掌握的基础知识和核心元素;接着剖析了Flex与Java的通信机制,以及Flex企业应用的客户端架构和服务器端架构;再接着详细讲解了BlazeDS框架的使用方法和...

    flex4.5.1.chm flex4API文档

    10. **Flex模块化**:通过模块(Module)机制,开发者可以将大型应用拆分为多个小的、可独立加载的单元,以优化加载时间和资源管理。 11. **移动开发支持**:Flex 4.5版本开始,增加了对移动设备的支持,能够创建...

    Flex4.0中文API

    Flex 4.0中文API是Adobe Flex开发框架的一个重要参考资料,尤其对于中文用户来说,它提供了详尽的类库、方法、属性和事件的说明,帮助开发者更好地理解和使用Flex技术进行富互联网应用(RIA)的开发。Flex API是Flex...

    Flex面试题.pdf

    Flex面试题涉及到多个方面,包括ActionScript(AS)版本差异、Flex开发框架、MVC模式的应用、内存管理、垃圾回收机制、前后端交互、性能优化以及Flex与Flash的协同开发等核心知识点。以下是对这些内容的详细解释: ...

    Flex模块化开发实例

    使用Flex Builder或Adobe Animate CC等工具,可以通过创建新的Module项目来生成模块。在模块项目中,我们可以编写组件、服务和业务逻辑代码。 4. **模块加载**: Flex提供了`mx.modules.ModuleLoader`组件,用于...

Global site tag (gtag.js) - Google Analytics