Flex SDK 里有一个运行时组件共享库——RSL ( Runtime Shared Library ),应该也差不多是对SWC的管理吧,作用就是使同域里的项目可共享资源,这样可以节省项目的档案大小,易切割、易搬运、易分享组件库项目与组件库可分开开发
如下图所示:
所以,当我在开发项目时,一些常用的数据、函式、类别、接口...等都可以归纳整理,然后编译成RSL,下次开发的时候,直接在项目设定里加入RSL( Add SWC )就可以了,有点像是自己的知识管理吧。另外,还可以拿来作图库的管理。通常我们在写Flex时,UI都可以加上一些Icon、CSS定义等,一般来说,都会直接这么写:
mxml 代码
-
- [Embed(source="../../../../assets/img/png/sample.png")]
- [Bindable]
- private var myIcon:Class
-
- <mx:button icon="{myIcon}">〈mx:Button icon="{myIcon}"〉</mx:button>
可是这样有一点麻烦,就是必须非常地了解整个文件结构,尤其是开发个别的UI时,会因为UI的package位置不同,Embed(source="......") 里的叙述也会跟着不同,常常会需要辛苦地找出正确的相对路径( relative path )。但是有了RSL之后,就可以把这些常用的icon图或其它资源编译成一个SWC,并集中管理,不用在因为UI的归类而改变。制作的方法如下:
》首先,建立一个Flex Library Project;
》把你需要包含的资源文件归档放到相应目录下;
》编写资源类将相应资源嵌入系统,代码如下:
as 代码
- package cn.swingchen.resource
- {
- import flash.display.Sprite;
-
-
-
- [Bindable]
- public class ResourceRef extends Sprite
- {
- [Embed(source="../../../assets/icon/accept.png")]
- public var iconAccept:Class;
-
- [Embed(source="../../../assets/icon/add.png")]
- public var iconAdd:Class;
-
- [Embed(source="../../../assets/sound/message.mp3")]
- public var soundMessage:Class;
- }
- }
》然后将该工程编译出swc组件文件;
》最后在需要的地方引用该资源文件,代码如下:
mxml 代码
- import cn.swingchen.resource.ResourceRef
- [Bindable]
- private var resource:ResourceRef= new ResourceRef();
-
- 〈mx:Button icon="{resource.iconAccept}"〉
这样在项目中资源文件与使用的地方可以分离开来,不仅开发的代码清楚些,而且在同一资源多处引用情况下,对最终总体文件大小也会减小。
<v:shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"> </v:shapetype>
- 大小: 23.6 KB
分享到:
相关推荐
RSLs是一组预编译的库,包含了常见的Flex组件和类,允许多个应用程序共享这些资源,减少网络传输的数据量。然而,如果不正确地管理RSL加载,可能会导致重复加载,从而影响应用程序的启动速度和整体性能。本文将深入...
总的来说,MiniCore是一个小巧且功能强大的Flex RSL实现,它的开源性质鼓励了社区协作和技术创新,对于那些寻求优化Flex应用性能和减小资源占用的开发者来说,无疑是一个值得研究和利用的工具。通过深入理解并运用...
**RSL**(Runtime Shared Libraries)是Flex中的一种技术,它允许开发者将应用程序中的某些部分封装成共享库,并在运行时按需加载这些库。这种方式可以显著减少初始加载时间,并提高应用性能。 **使用方法**: 1. *...
RSL是一种运行时组件共享库,允许同域内的项目共享资源,从而减小项目文件大小。通过设置Flex构建路径,将框架链接方式改为"runtime shared library (RSL)",Flex编译器会将框架文件分离出来,形成独立的`.swf`和`....
3. **缓存框架**:Flex 3引入了运行时共享库(RSL)支持,允许将Adobe签名的框架缓存到Flash Player的缓存中。这使得多个Flex应用可以共享已下载的库,减少了重复下载,提高了加载速度。 4. **模块化设计**:将大型...
优化Flex应用性能的方法包括:代码优化(如避免冗余计算和减少对象创建)、资源管理(例如使用RSL和图像优化)、缓存策略(如利用本地存储)以及网络通信优化(如数据压缩和异步加载)。 ### 21. 如何设置默认值,...
SWC(静态链接库)主要用于封装Flex组件、样式表和其他资源,以便在多个项目间共享。它通过编译器的library-path和include-libraries参数编译进应用程序中。要制作SWC,可以新建Flex Library Object项目或使用compc...
5. **文件大小优化**:减小Flex生成文件大小的方法包括使用RSL、模块化(Module)和外部加载资源。 6. **NaN比较**:在JavaScript和ActionScript中,`NaN`(Not-a-Number)与任何值比较都返回`false`,包括`NaN == ...
当多个应用程序使用相同的RSL时,用户只需下载一次这些共享资源,之后就可以在其他应用程序中复用,从而降低了网络流量和启动时间。 #### 六、安全沙箱 Flex应用程序在访问跨域资源时受到所谓的“安全沙箱”限制,...
- **运行时共享库**:运行时共享库(RSL)是一种优化机制,允许开发者将常用资源(如字体、图像等)打包成单独的库文件,在多个应用程序之间共享,从而减小最终应用程序的大小。 ##### 3. 构建用户界面 - **视觉组件*...
编译和部署使用RSL的Flex应用程序 25.6节. 在Flex Builder调试中创建和监视表达式 25.7节. 在Flex Builder中安装Ant窗口 25.8节. 为自动通用任务创建一个Ant构建文件 25.9节. 使用mxmlc和Ant编译Flex应用程序 25.10...
- **答案**:使用Flex布局管理器,如`<s:HBox>`或`<s:VBox>`,并设置适当的样式属性使其居中。 #### 29. 如何把MouseEvent的localX和localY属性转化成全局坐标? - **答案**:使用`globalToLocal()`方法将局部坐标...
Flex3开始支持运行时共享库(RSL),使得可以在Flash Player缓存中缓存框架代码。这允许其他Flex应用共享已经下载的框架文件,而不需要重新下载,从而减少了重复加载的时间,提升了效率。 模块化的思想也是性能优化...
- **RSL (Runtime Shared Libraries)**:运行时共享库是Flash Player在加载内容时可以延迟加载的库文件,有助于提高应用的加载速度。 - **ApplicationDomain**:应用程序域是AS3中的一个核心概念,它用于管理类的...