Adobe Flex迷你教程 -- 合理使用Module分割项目以及对Module的使用[关于接口]

转载 2012年03月30日 18:11:56

现在说说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帮助。

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

转自http://bbs.airia.cn/thread-2811-1-1.html 现在说说Module,这篇教程代码不是最重要的,怎么样合理的使用Module以及注意的问题才是关键,所以...
  • hanxuedanqing
  • hanxuedanqing
  • 2012年09月22日 23:32
  • 276

合理使用Module分割项目

Adobe Flex迷你教程 — 合理使用Module分割项目以及对Module的使用Posted by Kevin Luo at 2 January 2009Category: Flex 迷你教程T...
  • gjl513627
  • gjl513627
  • 2010年08月14日 20:43
  • 254

Flex Module 加载 及模块运用详细解释(除卸载)

[导读]Flex Module 加载 及模块运用详细解释(除卸载) 一、Module使用背景 Module 是Adobe为解决Flex应用初始化时较大的下载负载问题而设计的一种折中方案。将主...
  • MeetLunay
  • MeetLunay
  • 2012年03月20日 10:47
  • 1980

flex中Module的使用

1 ModuleLoader组件概述 1.1Module技术简介 flex的Modules技术是可以被flex程序使用的一个swf文件,它不能脱离程序独立运行,但是多个程序之间可以共享它。 fl...
  • xingfeng0501
  • xingfeng0501
  • 2012年04月29日 03:09
  • 8698

As新建一个module形式的第三方library

再来看一下这张表: 看完图,应该知道module的概念了吧。细心的小伙伴可以发现,application的module的有一个手机图标: 1、新建一个module作为lib...
  • LB_fighting
  • LB_fighting
  • 2016年06月13日 00:02
  • 2417

[flex module]Flex Module基础

关于flex module的bug 在使用flex module的时候会出现一个bug,具体表现为在加载了几次module后就加载不动了 报错可能是 1、cannot convert m...
  • seraph021724
  • seraph021724
  • 2012年12月12日 16:12
  • 1267

Flex Module的使用

转载:http://www.cnblogs.com/springhzs/archive/2012/03/20/2407931.html Module是Adobe为解决Flex应用初始化时较大...
  • happyrabbit456
  • happyrabbit456
  • 2012年10月23日 17:53
  • 528

FLEX module的使用

  FLEX module的使用 收藏 用FLEX来开发应用难免不了要使用到Module,FLEX组件提供了ModuleLoader组件,该组件使用方式类似与swfLoader,但是通常仅仅使用该组件...
  • lifeng_2009
  • lifeng_2009
  • 2010年04月29日 10:14
  • 528

FLEX module的使用 .

一、Module使用背景 Module 是Adobe为解决Flex应用初始化时较大的下载负载问题而设计的一种折中方案。将主Application合理分割为多个Module后,配合延迟加载策略,就可以...
  • MeetLunay
  • MeetLunay
  • 2012年05月10日 10:42
  • 1136

FLEX module的使用

用FLEX来开发应用难免不了要使用到Module,FLEX组件提供了ModuleLoader组件,该组件使用方式类似与swfLoader,但是通常仅仅使用该组件并不能满足我们的需求,这时FLEX为我们...
  • jinxinxin1314
  • jinxinxin1314
  • 2009年12月16日 22:25
  • 4076
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Adobe Flex迷你教程 -- 合理使用Module分割项目以及对Module的使用[关于接口]
举报原因:
原因补充:

(最多只允许输入30个字)