Flex RSL作资源共享管理

   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}"〉

        可是这样有一点麻烦,就是必须非常地了解整个文件结构,尤其是开发个别的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}"〉


   这样在项目中资源文件与使用的地方可以分离开来,不仅开发的代码清楚些,而且在同一资源多处引用情况下,对最终总体文件大小也会减小。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值