- 浏览: 1084802 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (695)
- 心情日记 (14)
- AS开发工具 (12)
- 文章转载 (99)
- AIR (5)
- 问题总结 (46)
- SWF格式 (7)
- 测试总结 (10)
- 外文资料 (9)
- 算法技术 (33)
- AS3常用开源库 (43)
- 源码范例 (102)
- FLEX (72)
- FLASH 优化 (33)
- 游戏开发 (49)
- 开发技术 (11)
- 工作应用 (34)
- AS3收集 (140)
- WebBase (0)
- 开发构想 (4)
- 设计模式 (2)
- 框架和框架范例 (19)
- RED5 (3)
- java开发 (3)
- JAVA (1)
- FLASH-3D (23)
- 3D (6)
- 书籍 (10)
- 业界信息资料 (3)
- C# (1)
- JavaScript (12)
- HTML5 (6)
- Flixel (1)
- D5Power RPG网页游戏引擎 (0)
- ColorMatrixFilter - 获得相应颜色的色调 函数 (0)
- Starling (0)
最新评论
-
老顽童203:
字体
水果忍者鼠标跟随特效制作[转载] -
hairball00:
[转] 放出超多的Flash组件源代码 -
he74552775:
flash AS3 RegExp简单功能用法(转) -
hanshuai1232000:
第四点,有利也有弊,等你做了大型的aprg,你就知道了
[转]位图数据内存优化 -
yangfantao:
太感谢
[转] 放出超多的Flash组件源代码
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优化
文章分类: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中的方法
}
发表评论
-
[心得] for和for...in...遍历数组的效率,与tonyemotion版完全不同
2011-08-22 21:46 0首先tonyemotion版地址:http://bbs.9ri ... -
[转]TLF 文字布局框架的内存问题
2011-08-09 00:34 0http://bbs.airia.cn/home.php? ... -
[转]flash/actionscript3 性能优化汇总
2011-07-27 01:38 0http://www.iamcoding.com/?p=173 ... -
[转]swf / actionscript3 执行顺序
2011-07-27 01:36 0http://www.iamcoding.com/?p=198 ... -
[转]flash重绘机制总结
2011-07-27 01:35 0重绘,是flash性能的一 ... -
文字如何缩放?
2011-07-26 23:20 1247做个文件打印的东东,需要预览,就是把保存的Sprite类缩小再 ... -
AS3的一些优化计算方法
2011-07-06 12:56 0http://www.cnitblog.com/flashli ... -
[转] 关取绝对值的效率问题
2011-05-26 23:47 1519由一个项目用到很多的绝对值,我简单测试了一下,我想知道Math ... -
[转]Flash终极瘦身术--flash减k
2011-05-25 16:40 1263... -
[新手常见问题] Flash代码优化(整理)
2011-05-18 00:12 0看到代码优化就给复制发上来了,发了才发现文章太旧了,部分过时了 ... -
[转] 蛋疼的adobe,他让我蛋疼了一个下午。buttonMode的问题。。。
2011-05-16 21:05 0在为公司整理架构的时候写button组建。。。发现了一个蛋疼问 ... -
Flash的运行机制:异步单线程
2011-05-11 00:34 1949http://bbs.9ria.com/thread-4862 ... -
[心得] AS3游戏中可视对象上限及位图相关的内存消耗实测
2011-04-29 22:44 0http://bbs.9ria.com/viewthread. ... -
使用弱引用
2011-04-28 19:07 0//true表示使用弱引用 var di ... -
[转] 弱引用。
2011-04-27 01:18 0http://bbs.9ria.com/viewthread. ... -
重新关注AS垃圾回收问题
2011-04-12 00:47 0http://www.shch8.com/blog/post/ ... -
[转]Flash 平台应用性能优化官方文档
2011-04-08 19:54 01. 关于存储 使用适当 ... -
[转]位图数据内存优化
2011-03-31 15:55 2807最近协助同事对Flash相册项目做了程序优化,觉得每个优化步骤 ... -
[转]AS3中Timer,setTimeout,setInterval对gc的对比
2011-03-28 17:08 0http://hongweimail.blog.163.com ... -
[转]自制中文字库嵌入——单色图形面积压缩/加密法
2011-03-23 19:59 1986自制中文字库嵌入—— ...
相关推荐
Flex 基于 Module 模块的...在实际开发中,运用 Flex 的模块化开发方式,可以构建复杂且可扩展的用户界面,同时优化应用程序的性能和维护性。通过合理地组织模块,可以确保代码结构清晰,便于团队协作和项目长期维护。
本文将深入探讨Flex加载Module的相关知识点,以及如何利用客户端缓存来优化性能。 1. **Flex模块(Module)**:在Flex应用中,模块是可重用的、可动态加载的SWF组件。它们是独立的代码单元,可以在运行时被添加到主...
【Flex Module PPT详解】 ...总结起来,Flex Module 和RSLs都是Flex开发中的重要工具,它们分别解决了代码组织、启动速度和资源共享的问题。理解并灵活运用这两个特性,能够显著提升Flex应用程序的质量和性能。
在Flex开发中,模块化(Module)是一种优化大型应用程序架构的有效方法。它允许我们将复杂的项目分解为多个独立的、可重用的组件,每个组件都称为一个模块。这样做可以提高代码的可维护性和可扩展性,同时降低加载...
在Flex开发中,`ModuleLoader` 是一个关键组件,它允许开发者动态地加载MX模块(即Flex模块,独立的SWF文件)。`ModuleLoader` 的主要功能是将模块的加载过程与应用程序的其余部分分离,这有助于实现代码的模块化和...
2. Flex开发框架及优缺点: - Cairngorm:Adobe官方出品,稳定且无明显bug,但应用较为复杂,编码量大,不适用于敏捷开发。 - PureMVC:广泛应用,适合中小型项目,基于MVC模式,有中央存储器的单件类设计。 - ...
总结来说,避免Flex RSL重复加载的关键在于合理使用SWC进行模块化开发,通过预加载策略和多模块架构优化加载性能。通过这些方法,可以有效地减少网络传输的负担,提高应用程序的启动速度和整体运行效率,为用户提供...
Flex模块(Flex Module)是Adobe Flex框架中的一个重要概念,它允许开发者将大型应用程序分解为多个独立的、可重用的组件,这些组件被称为模块。在Flex应用中,模块可以按需加载,从而优化应用程序的启动时间和内存...
本人从其他网站上下载的,333页全,看到CSDN上没有完整的版本,所以共享一下。...第9章 Flex企业应用性能优化 第10章 Flex企业应用开发的其他技术 附录 Flex Builder 中的项目如何迁移至Flash Builder
目录: 第1篇 基础知识篇 ... 第4篇 性能优化篇 第17章 Module机制 第18章 RSL运行时共享库 第5篇 Flex通信篇 第19章 与JavaScript/AJAX通信 第20章 Flex与PHP通信 第21章 Flex与Java EE通信
总的来说,Adobe Flex的Module机制为大型Flex项目提供了灵活的架构,使得开发、维护和优化变得更加高效。理解并熟练掌握Module的使用,对于提升Flex应用程序的质量和性能至关重要。通过实际操作和研究`...
本人从其他网站上下载的,333页全,看到CSDN上没有完整的版本,所以共享一下。...第9章 Flex企业应用性能优化 第10章 Flex企业应用开发的其他技术 附录 Flex Builder 中的项目如何迁移至Flash Builder
首先介绍了Flex/Flash的工作机理和利用Flex开发企业级应用必须掌握的基础知识和核心元素;接着剖析了Flex与Java的通信机制,以及Flex企业应用的客户端架构和服务器端架构;再接着详细讲解了BlazeDS框架的使用方法和...
10. **Flex模块化**:通过模块(Module)机制,开发者可以将大型应用拆分为多个小的、可独立加载的单元,以优化加载时间和资源管理。 11. **移动开发支持**:Flex 4.5版本开始,增加了对移动设备的支持,能够创建...
Flex 4.0中文API是Adobe Flex开发框架的一个重要参考资料,尤其对于中文用户来说,它提供了详尽的类库、方法、属性和事件的说明,帮助开发者更好地理解和使用Flex技术进行富互联网应用(RIA)的开发。Flex API是Flex...
Flex面试题涉及到多个方面,包括ActionScript(AS)版本差异、Flex开发框架、MVC模式的应用、内存管理、垃圾回收机制、前后端交互、性能优化以及Flex与Flash的协同开发等核心知识点。以下是对这些内容的详细解释: ...
使用Flex Builder或Adobe Animate CC等工具,可以通过创建新的Module项目来生成模块。在模块项目中,我们可以编写组件、服务和业务逻辑代码。 4. **模块加载**: Flex提供了`mx.modules.ModuleLoader`组件,用于...