`

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

    博客分类:
  • flex
 
阅读更多

现在说说Module,这篇教程代码不是最重要的,怎么样合理的使用Module以及注意的问题才是关键,所以建议大家注意下面红色语句。Module,可以将我们的项目按需划分为N个模块,在编译时将项目编译为主文件以及N个module的swf。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中的方法
}



好了,Module的使用就写这么多,看到这里你应该也可以创建自己的Module了,对于ModuleManager和IModuleInfo 中详细的内容,大家可以查阅Flex帮助。

分享到:
评论

相关推荐

    添加nginx-http-flv-module模块并重新编译后的nginx(windows版)

    现在我们将深入探讨这一主题,了解如何添加此模块以及Nginx重新编译的过程。 首先,`nginx-http-flv-module`是一个扩展模块,它扩展了Nginx的基本功能,使其能够处理FLV和HLS视频流。这对于在线视频服务提供商来说...

    flex-iframe-1.4.6

    "flex-iframe-1.4.6"是一个开源项目,主要功能是为Adobe Flex应用程序提供在Flex组件中嵌入HTML iframe的能力。这个项目是Google Code上的一个存储库,Google Code曾是一个托管开源软件项目的平台,它允许开发者上传...

    flex-messaging-core.jar

    7. **BlazeDS Integration**: BlazeDS是Adobe提供的一个开源服务器端项目,它与Flex Messaging Core紧密集成,提供了数据推送和实时通信功能。BlazeDS使用AMF协议,允许Flex应用与Java服务器无缝交互。 总的来说,...

    flex-messaging-4.7.3最新版本的jar

    Flex Messaging是Adobe Flex框架的一部分,它提供了一个强大的实时通信平台,允许客户端(通常是Flex应用程序)与服务器进行双向数据交换。4.7.3版本是这个组件的一个更新,它可能包含了性能提升、错误修复以及新的...

    Adobe Flex4 教程

    Adobe Flex4 教程帮助手册pdf

    nginx + nginx-http-flv-module-1.2.9

    FLV(Flash Video)是 Adobe Flash 平台广泛使用的视频格式,适用于在线流媒体服务。 3. **安装与配置** 安装 nginx-http-flv-module 需要将模块源代码与 Nginx 源代码一起编译。在解压的 `nginx-...

    nginx-http-flv-module-master

    【Nginx-HTTP-FLV-Module-Master】是一个专为Nginx服务器设计的扩展模块,旨在增强其对HTTP FLV(Flash Video)流的支持,并且特别强调了对h265视频编码格式的兼容性。这个模块使得Nginx能够作为一个高效的流媒体...

    Flex Builder Plug-in and Adobe

    ### Flex Builder Plug-in and Adobe: An In-depth Exploration In the dynamic world of web development, especially in the realms of Flash and Flex, the integration between Eclipse and Flex Builder has ...

    Adobe Flex中文教程

    - Adobe Flex中文教程《Adobe Flex Quick Starts(中文).pdf》可能是教程的起点,其中可能涵盖了Flex的基础概念、组件使用、数据处理和项目构建等内容。 - Adobe官方文档、在线论坛和社区是获取更多学习资源和解答...

    FLEX4_Flex4教程 - FLEX4从入门到精通,挺不错的值得一看

    6. **Flex Builder/Flash Builder**:Adobe Flex Builder(后更名为Flash Builder)是开发Flex应用的主要IDE,提供代码提示、调试工具和项目管理等功能,让开发过程更为高效。 7. **Services和Remoting**:Flex4...

    跟我StepByStep学FLEX教程------王一松

    - **Flex Builder安装**:Flex Builder是基于Eclipse的IDE,提供了强大的编辑器、调试器以及项目管理功能,极大地提高了开发效率。 #### 三、FLEX基本编程 - **Hello World示例**:通过简单的“Hello World”示例...

    (修复bug模块)nginx-http-flv-module-master 支持flv模块直播

    FLV是一种广泛用于网络视频直播和点播的格式,主要依赖Adobe Flash Player进行播放。 【描述】:“nginx-http-flv-module-master”是这个模块的主分支或最新版本,表明开发者或维护者已经修复了已知的bug,并且优化...

    跟我StepByStep学FLEX教程------王一松.pdf

    - **本书目的**:本书旨在通过一系列逐步教程,从FLEX的基础概念入手,逐步深入到更复杂的项目实践,帮助读者全面掌握FLEX技术栈。 #### 二、FLEX安装与配置 - **Flex 3及Flex Builder安装**:介绍了如何下载并...

    Flex入门教程-Web和RIA工程实例

    Flex入门教程——Web和RIA工程实例是一份专为初学者设计的教程,旨在帮助学习者掌握Adobe Flex这一强大的富互联网应用程序(RIA)开发框架。Flex是基于ActionScript和MXML,用于构建交互式、高性能的Web应用的工具,...

    nginx-http-flv - module.rar

    RTMP 是 Adobe Systems 开发的实时传输协议,用于在服务器和客户端之间进行音频、视频和数据的实时传输。它通常用于在线直播,如视频会议、在线教育和游戏直播等场景。Nginx 通过 RTMP 模块支持 RTMP 协议,允许...

    nginx-http-flv-module.rar

    Nginx-http-flv-module提供对HTTP-FLV的支持,使服务器能够处理通过这种方式请求的视频流,适用于那些不能或不想使用RTMP的用户。 在实际应用中,Nginx作为高性能的Web服务器和反向代理服务器,其轻量级、高效的...

    flex-messaging系列jar包

    Flex Messaging系列JAR包是Adobe Flex与Java之间进行通信的核心组件,主要负责建立富互联网应用程序(RIA)与服务器之间的消息传递。这些JAR文件包含了多种服务和协议的支持,使得Flex客户端能够与Java后端无缝交互...

Global site tag (gtag.js) - Google Analytics