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 PPT详解】 Flex Module 是Adobe Flex SDK中的一个重要特性,它允许开发者将大型应用程序分解为更小、更易管理的部分。通过模块化,我们可以创建独立的代码块,这些代码块可以在不同的应用程序中复用...
Flex 基于 Module 模块的...在实际开发中,运用 Flex 的模块化开发方式,可以构建复杂且可扩展的用户界面,同时优化应用程序的性能和维护性。通过合理地组织模块,可以确保代码结构清晰,便于团队协作和项目长期维护。
动态加载和卸载Module是优化应用程序性能和减少初始化时间的有效方法,特别是在需要根据用户需求按需加载功能的情况下。 1. **动态加载Module**: 动态加载Module是通过Flex的`ModuleFactory`类实现的。首先,我们...
Flex模块(Flex Module)是Adobe Flex框架中的一个重要概念,它允许开发者将大型应用程序分解为多个独立的、可重用的组件,这些组件被称为模块。在Flex应用中,模块可以按需加载,从而优化应用程序的启动时间和内存...
本文将深入探讨Flex加载Module的相关知识点,以及如何利用客户端缓存来优化性能。 1. **Flex模块(Module)**:在Flex应用中,模块是可重用的、可动态加载的SWF组件。它们是独立的代码单元,可以在运行时被添加到主...
`ModuleLoader` 的主要功能是将模块的加载过程与应用程序的其余部分分离,这有助于实现代码的模块化和优化加载性能。在本文中,我们将深入探讨如何使用`ModuleLoader`加载模块并传递参数。 首先,让我们理解`...
Flex RSL(Runtime Shared Libraries)是Adobe Flex框架中的一种机制,用于优化应用程序的加载和运行时性能。RSLs是一组预编译的库,包含了常见的Flex组件和类,允许多个应用程序共享这些资源,减少网络传输的数据量...
在Flex开发中,模块化(Module)是一种优化大型应用程序架构的有效方法。它允许我们将复杂的项目分解为多个独立的、可重用的组件,每个组件都称为一个模块。这样做可以提高代码的可维护性和可扩展性,同时降低加载...
【Flex面试题】Flex面试题主要涵盖Flex的基础概念、开发框架、MVC模式的应用、内存管理、垃圾回收机制、前端性能优化以及与后端通信等多个方面。以下是对这些知识点的详细解析: 1. AS2与AS3的区别: AS2...
FlexModule_j2ee.zip是一个与Java企业版(J2EE)相关的压缩包,它提供了将Flex前端技术集成到JavaServer Pages(JSP)中的解决方案。Flex是一种强大的富互联网应用程序(RIA)开发框架,由Adobe公司提供,用于创建...
- 使用Flex Builder或IntelliJ IDEA等IDE进行调试,可以帮助快速定位问题并优化皮肤设计。 总之,自定义Flex4组件皮肤是一项涉及组件模型、状态管理、图形绘制等多个方面的任务。通过学习和实践,你可以创建出符合...
10. **Flex模块化**:通过模块(Module)机制,开发者可以将大型应用拆分为多个小的、可独立加载的单元,以优化加载时间和资源管理。 11. **移动开发支持**:Flex 4.5版本开始,增加了对移动设备的支持,能够创建...
总的来说,Adobe Flex的Module机制为大型Flex项目提供了灵活的架构,使得开发、维护和优化变得更加高效。理解并熟练掌握Module的使用,对于提升Flex应用程序的质量和性能至关重要。通过实际操作和研究`...
目录: 第1篇 基础知识篇 ... 第4篇 性能优化篇 第17章 Module机制 第18章 RSL运行时共享库 第5篇 Flex通信篇 第19章 与JavaScript/AJAX通信 第20章 Flex与PHP通信 第21章 Flex与Java EE通信
Flex模块(FlexModule)是Flex应用程序中可重用的组件,它们可以在运行时动态加载和卸载。在JSP中嵌入Flex时,我们可以创建一个或多个Flex模块,每个模块负责特定的功能,然后在需要时通过JSP页面进行调用。 2. **...
Flex面试题涉及到多个方面,包括ActionScript(AS)版本差异、Flex开发框架、MVC模式的应用、内存管理、垃圾回收机制、前后端交互、性能优化以及Flex与Flash的协同开发等核心知识点。以下是对这些内容的详细解释: ...
7. 模块化开发:Flex 4.0引入了模块(Module)的概念,允许将大型应用拆分为多个独立加载的模块,从而优化加载时间和内存使用。 8. 集成开发环境(IDE):Flex Builder或Flash Builder(Flex的开发工具)在Flex 4.0...