http://www.puxiao.com/?p=463
最近连着看了关于RSL的文章,我也说说我现在认识的RSL。 Y.Boy 的 创建自己的RSL
Aedis.Ju 的 动态加载
Application
关于AS里的RSL机制以及好处我就不说了,我说说复杂项目中的使用方法。
算是对他们文章的一个补充延伸吧。
我准备说的使用RSL方法,简单的说就是:事情分两步走 (1)flex
编写代码的时候:使用设置为不嵌入代码的.swc类库
(2)swf
运行的时候:加载包含模块、类、代码、嵌入图片
、声音等资源的.swf文件
-------------------
如果你明白我上面的意思,并且在心里想说:我早就是这样做的!
呵呵,那也不需要再往下面看了^-^
---------------------------
<一>使用swf作为类库,常用方法存在的问题
先说说上面两位文章里讲的使用方法(以Y.Boy里的代码为例):
// 获得类引用
var Adobe
Class:Class = getDefinitionByName("cn.ria
home.class
es::Adobe") as Class;
// 新建实例
var adobe:* = new AdobeClass();
简单的项目可以这样做,相对复杂点的项目,比如多个模块开发
,这样做就存在问题了:
1 想获得类引用,必须知道并且写正确类的命名空间以及类的类名
(写起来肯定麻烦,并且你拼写错了,编译
器也不会报错,只有当运行的时候才会发现)
2 新建实例只能通过new 的方式,某些实现单例的方式就不能用
(如果AdobeClass类是单例,你想获得单例,你写AdobeClass.getInstance()编译器就报错了)
3 编写代码时没有代码提示,用起来麻烦。
并且还有...此出省略一万五千字
<二>介绍RSL类库的新使用方法
(1) 先获得RSL的源材料:swc和swf
1 把你的类、资源等做成swc(或者是别人开发的swc)
最简单的方法是Flex里新建Library project工程
2 新建一个as工程,就一个任务:引入刚才制作好的swc的各个类及资源
发布这个工程,获得swf
(2) 编写项目模块(ActionScript Modules)代码时使用swc
1 在你的项目里,设置项目属性,添加外部库路径,把得到的swc添加进来
Properties -> ActionScript Build Path -> Library path -> add SWC
2 设置swc的连接类型为外部
(这是最重要的一步)
点刚才加入的swc前面的'+'号,双击 Link Type: Merged into code 这一项,在弹出的窗口中,将Link Type设置成External。
这样设置swc,你编写代码的时候,你的类,你的资源,就可以像正常导入进来一样,自由使用。
编写的时候也有代码提示,甚至你的代码里都出现了 import cn.riahon.classes.Adobe,类不管是什么随便用,但在发布的时候却不会把这个类以及swc里所有的资源类编译进去。
(发布的时候其实不存在这些类,可以理解成暂时性的“欺骗”了flash
)
(3) 运行时加载swf获得类库
主swf运行的时候,使用Loader加载包含类库的 swf Libs文件(第一步得到的那个swf),从而引入libs里的类。
你可以觉定加载的类库所放入的作用域ApplicationDomain,以便在不用的时候可以把加载的类给删除掉。
加载完swf以后(Event.INIT事件
后),你就可以使用这个各个类。
如果是模块开发,这个时候可以再去加载使用到这些类的模块。
(总之,一定确保在没有加载完之前千万不要使用)
<完> 我说的使用方法就是这样了
-----------------------------------
说明:以上绝非我自己发现的方法,好多“仙人”都已经这样用了...
我是怎么知道的?翻看《ActionScript3 编程精髓》的第767页以及同事 张成亮
给我讲的。 |
相关推荐
Flex RSL(Runtime Shared Libraries)是Adobe Flex框架中的一种机制,用于优化应用程序的加载和运行时性能。RSLs是一组预编译的库,包含了常见的Flex组件和类,允许多个应用程序共享这些资源,减少网络传输的数据量...
RSL(Resources Share List)类库是一个用于资源共享和...通过深入学习Resources Share List.doc中的内容,并结合RSL.dll和RSL.xml的实际应用,开发者能够有效地集成RSL库到他们的项目中,提升软件的可扩展性和协作性。
目录: 第1篇 基础知识篇 第1章 走进Flex世界 第2章 Flex基础知识 ... 第18章 RSL运行时共享库 第5篇 Flex通信篇 第19章 与JavaScript/AJAX通信 第20章 Flex与PHP通信 第21章 Flex与Java EE通信
标题中的“rsl.rar_RSL ...对于想要学习或使用属性约减技术的人来说,这个“rsl.rar”压缩包可能是一个宝贵的资源,它提供了C语言编写的高效算法,并结合MATLAB的易用性,使得在实际项目中应用这些算法变得更加便捷。
**RSL**(Runtime Shared Libraries)是Flex中的一种技术,它允许开发者将应用程序中的某些部分封装成共享库,并在运行时按需加载这些库。这种方式可以显著减少初始加载时间,并提高应用性能。 **使用方法**: 1. *...
- 对于SWF体积大的问题,可以使用Module动态加载和RSL(Runtime Shared Libraries)共享库来减少下载量。 - 对于处理速度慢,可以优化异步通信,提升用户体验,例如通过进度条显示或异步加载。 8. Flash与Flex的...
RSL的使用方法通常涉及在Flex项目中声明依赖关系,并在运行时动态加载这些库。 ### 4. SWC是什么,如何创建一个SWC? SWC是Shared Library Container的缩写,用于存储编译后的ActionScript类、资源和其他编译后的...
RSL是一种运行时组件共享库,允许同域内的项目共享资源,从而减小项目文件大小。通过设置Flex构建路径,将框架链接方式改为"runtime shared library (RSL)",Flex编译器会将框架文件分离出来,形成独立的`.swf`和`....
RSL(Runtime Shared Libraries)是一种在运行时动态加载的共享库,它能够提高应用程序的性能和内存使用效率。相比于静态链接库(SWC文件),RSL的优势在于减少应用程序的初始下载时间和文件大小,因为它只需要在...
3. **RSL(Runtime Shared Libraries)**:RSL是动态链接库,运行时由Flash Player加载,以减少应用程序SWF的大小和下载时间。它们提高了内存效率,并允许多个应用共享同一代码库,只需下载一次。配置RSL涉及修改...
- 使用Runtime Shared Libraries (RSL) 分离库文件,提高加载效率。 - 异步处理远程调用,提供反馈以改善用户体验。 8. Flex与Flash协同开发: - 当需要Flex SDK功能时,建立Flex工程,使用SWC作为Flash的皮肤。...
OTIS-RSL串行协议是一种远程串行链接协议,通常用于电梯控制系统中的通信。以下为从标题、描述、标签以及部分内容中提取出的知识点。 1. OTIS-RSL串行协议概述: OTIS-RSL协议是一种远程串行通信协议,它允许电梯...
除了基本的反射使用外,Flex还支持更复杂的场景,如在Module和RSL(Runtime Shared Library)中使用反射。Module允许在应用程序运行时动态加载和卸载组件,而RSL则提供了按需加载库的功能,两者都涉及到了动态加载类...
普通SWC在编译时会嵌入到SWF中,而RSL类型的库则利用运行时加载机制,允许在不增大SWF体积的情况下复用代码。 在Flex项目中,开发者可以修改html-template目录下的模板文件,影响生成的HTML输出。这对于定制界面...
对于SWF体积大的问题,可以使用模块化(Module)加载和运行时共享库(RSL)来减少初始加载时间。对于处理速度慢,可以通过优化异步通信,如分批加载数据,提供进度提示,使用户在等待期间可以进行其他操作。 8. ...
2.5 Flex中的组件化编程 2.5.1 认识Flex组件和组件容器 2.5.2 组件生命周期与布局 2.5.3 组件的失效机制 2.5.4 使用ActionScript创建自定义组件 2.6 异步调用 2.6.1 异步调用导致模型数据不一致...
2.5 Flex中的组件化编程 2.5.1 认识Flex组件和组件容器 2.5.2 组件生命周期与布局 2.5.3 组件的失效机制 2.5.4 使用ActionScript创建自定义组件 2.6 异步调用 2.6.1 异步调用导致模型数据不一致...
模块(Modules)和运行时共享库(RSLs)(669) 22.1节.创建一个运行时共享库 22.2节.使用跨域的RSL 22.3节.使用FlexFramework作为RSL 22.4节.优化RSL 22.5节.创建基于MXML的模块 22.6节.创建基于ActionScript的模块 22.7...