`

Flex RSL作资源共享管理

    博客分类:
  • Flex
阅读更多

    Flex SDK 里有一个运行时组件共享库——RSL ( Runtime Shared Library ),应该也差不多是对SWC的管理吧,作用就是使同域里的项目可共享资源,这样可以节省项目的档案大小,易切割、易搬运、易分享组件库项目与组件库可分开开发
如下图所示:

     所以,当我在开发项目时,一些常用的数据、函式、类别、接口...等都可以归纳整理,然后编译成RSL,下次开发的时候,直接在项目设定里加入RSL( Add SWC )就可以了,有点像是自己的知识管理吧。另外,还可以拿来作图库的管理。通常我们在写Flex时,UI都可以加上一些Icon、CSS定义等,一般来说,都会直接这么写:

mxml 代码
  1. // embed 资源文件   
  2. [Embed(source="../../../../assets/img/png/sample.png")]   
  3. [Bindable] //设定为Bindable   
  4. private var myIcon:Class   
  5. // 嵌入
  6. <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 代码

  1. package cn.swingchen.resource   
  2. {   
  3. import flash.display.Sprite;   
  4. /**  
  5.  * @author swingchen  
  6.  */  
  7. [Bindable]   
  8. public class ResourceRef extends Sprite   
  9. {   
  10.     [Embed(source="../../../assets/icon/accept.png")]   
  11.     public var iconAccept:Class;   
  12.        
  13.     [Embed(source="../../../assets/icon/add.png")]   
  14.     public var iconAdd:Class;   
  15.        
  16.     [Embed(source="../../../assets/sound/message.mp3")]   
  17.     public var soundMessage:Class;   
  18. }   
  19. }  

》然后将该工程编译出swc组件文件;
》最后在需要的地方引用该资源文件,代码如下:
mxml 代码
  1. import cn.swingchen.resource.ResourceRef   
  2. [Bindable]   
  3. private var resource:ResourceRef= new ResourceRef(); // 实体化资源类别   
  4. //然后就可以直接嵌入了, 不需要管图文件的位置了, 都交给RSL去烦恼就好!   
  5. 〈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
分享到:
评论

相关推荐

    避免Flex RSL重复load 提高module加载性能的swc

    RSLs是一组预编译的库,包含了常见的Flex组件和类,允许多个应用程序共享这些资源,减少网络传输的数据量。然而,如果不正确地管理RSL加载,可能会导致重复加载,从而影响应用程序的启动速度和整体性能。本文将深入...

    MiniCore:这是有关flex RSL的微型核心。-开源

    总的来说,MiniCore是一个小巧且功能强大的Flex RSL实现,它的开源性质鼓励了社区协作和技术创新,对于那些寻求优化Flex应用性能和减小资源占用的开发者来说,无疑是一个值得研究和利用的工具。通过深入理解并运用...

    FLEX面试题

    **RSL**(Runtime Shared Libraries)是Flex中的一种技术,它允许开发者将应用程序中的某些部分封装成共享库,并在运行时按需加载这些库。这种方式可以显著减少初始加载时间,并提高应用性能。 **使用方法**: 1. *...

    flex瘦身优化之我见(内部资料)

    RSL是一种运行时组件共享库,允许同域内的项目共享资源,从而减小项目文件大小。通过设置Flex构建路径,将框架链接方式改为"runtime shared library (RSL)",Flex编译器会将框架文件分离出来,形成独立的`.swf`和`....

    flex性能优化文档

    3. **缓存框架**:Flex 3引入了运行时共享库(RSL)支持,允许将Adobe签名的框架缓存到Flash Player的缓存中。这使得多个Flex应用可以共享已下载的库,减少了重复下载,提高了加载速度。 4. **模块化设计**:将大型...

    Flex试题 .txt

    优化Flex应用性能的方法包括:代码优化(如避免冗余计算和减少对象创建)、资源管理(例如使用RSL和图像优化)、缓存策略(如利用本地存储)以及网络通信优化(如数据压缩和异步加载)。 ### 21. 如何设置默认值,...

    Flex面试题及答案

    SWC(静态链接库)主要用于封装Flex组件、样式表和其他资源,以便在多个项目间共享。它通过编译器的library-path和include-libraries参数编译进应用程序中。要制作SWC,可以新建Flex Library Object项目或使用compc...

    flex面试题

    5. **文件大小优化**:减小Flex生成文件大小的方法包括使用RSL、模块化(Module)和外部加载资源。 6. **NaN比较**:在JavaScript和ActionScript中,`NaN`(Not-a-Number)与任何值比较都返回`false`,包括`NaN == ...

    Flex技术介绍

    当多个应用程序使用相同的RSL时,用户只需下载一次这些共享资源,之后就可以在其他应用程序中复用,从而降低了网络流量和启动时间。 #### 六、安全沙箱 Flex应用程序在访问跨域资源时受到所谓的“安全沙箱”限制,...

    flex 4 help

    - **运行时共享库**:运行时共享库(RSL)是一种优化机制,允许开发者将常用资源(如字体、图像等)打包成单独的库文件,在多个应用程序之间共享,从而减小最终应用程序的大小。 ##### 3. 构建用户界面 - **视觉组件*...

    flex3的cookbook书籍完整版dpf(包含目录)

    编译和部署使用RSL的Flex应用程序 25.6节. 在Flex Builder调试中创建和监视表达式 25.7节. 在Flex Builder中安装Ant窗口 25.8节. 为自动通用任务创建一个Ant构建文件 25.9节. 使用mxmlc和Ant编译Flex应用程序 25.10...

    flex题目大全

    - **答案**:使用Flex布局管理器,如`&lt;s:HBox&gt;`或`&lt;s:VBox&gt;`,并设置适当的样式属性使其居中。 #### 29. 如何把MouseEvent的localX和localY属性转化成全局坐标? - **答案**:使用`globalToLocal()`方法将局部坐标...

    Flex 性能优化常用手法总结

    Flex3开始支持运行时共享库(RSL),使得可以在Flash Player缓存中缓存框架代码。这允许其他Flex应用共享已经下载的框架文件,而不需要重新下载,从而减少了重复加载的时间,提升了效率。 模块化的思想也是性能优化...

    AS3高手之路

    - **RSL (Runtime Shared Libraries)**:运行时共享库是Flash Player在加载内容时可以延迟加载的库文件,有助于提高应用的加载速度。 - **ApplicationDomain**:应用程序域是AS3中的一个核心概念,它用于管理类的...

Global site tag (gtag.js) - Google Analytics