首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 媒体动画 > flex >

flex RSL作资源共享管理

2012-11-23 
flex RSL做资源共享管理Flex SDK 里有一个运行时组件共享库——RSL ( Runtime Shared Library ),应该也差不

flex RSL做资源共享管理

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

flex RSL作资源共享管理

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

mxml?代码
  1. //?embed?资源文件??? [Embed(source="../../../../assets/img/png/sample.png")] ??
  2. [Bindable]?//设定为Bindable ?? private?var?myIcon:Class ?? //?嵌入
  3. <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. import?flash.display.Sprite; ?? /** ?
  3. ?*?@author?swingchen ? ?*/??
  4. [Bindable] ?? public?class?ResourceRef?extends?Sprite ??
  5. { ?? ????[Embed(source="../../../assets/icon/accept.png")] ??
  6. ????public?var?iconAccept:Class; ?? ???? ??
  7. ????[Embed(source="../../../assets/icon/add.png")] ?? ????public?var?iconAdd:Class; ??
  8. ???? ?? ????[Embed(source="../../../assets/sound/message.mp3")] ??
  9. ????public?var?soundMessage:Class; ?? } ??
  10. }??

》然后将该工程编译出swc组件文件;
》最后在需要的地方引用该资源文件,代码如下:
mxml?代码
  1. import?cn.swingchen.resource.ResourceRef ?? [Bindable] ??
  2. private?var?resource:ResourceRef=?new?ResourceRef();?//?实体化资源类别 ?? //然后就可以直接嵌入了,?不需要管图文件的位置了,?都交给RSL去烦恼就好! ??
  3. 〈mx:Button?icon="{resource.iconAccept}"〉

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

热点排行