Flex RSL作资源共享管理
2012-02-01 14:42
211 查看
Flex SDK 里有一个运行时组件共享库——RSL ( Runtime Shared Library ),应该也差不多是对SWC的管理吧,作用就是使同域里的项目可共享资源,这样可以节省项目的档案大小,易切割、易搬运、易分享组件库项目与组件库可分开开发
如下图所示:
所以,当我在开发项目时,一些常用的数据、函式、类别、接口...等都可以归纳整理,然后编译成RSL,下次开发的时候,直接在项目设定里加入RSL( Add SWC )就可以了,有点像是自己的知识管理吧。另外,还可以拿来作图库的管理。通常我们在写Flex时,UI都可以加上一些Icon、CSS定义等,一般来说,都会直接这么写: mxml 代码 // embed 资源文件 [Embed(source="../../../../assets/img/png/sample.png")] [Bindable] //设定为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; /** * @author swingchen */ [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(); // 实体化资源类别 //然后就可以直接嵌入了, 不需要管图文件的位置了, 都交给RSL去烦恼就好! 〈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>
如下图所示:
所以,当我在开发项目时,一些常用的数据、函式、类别、接口...等都可以归纳整理,然后编译成RSL,下次开发的时候,直接在项目设定里加入RSL( Add SWC )就可以了,有点像是自己的知识管理吧。另外,还可以拿来作图库的管理。通常我们在写Flex时,UI都可以加上一些Icon、CSS定义等,一般来说,都会直接这么写: mxml 代码 // embed 资源文件 [Embed(source="../../../../assets/img/png/sample.png")] [Bindable] //设定为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; /** * @author swingchen */ [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(); // 实体化资源类别 //然后就可以直接嵌入了, 不需要管图文件的位置了, 都交给RSL去烦恼就好! 〈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>
相关文章推荐
- Flex RSL (Runtime Shared Library )作资源共享管理
- Flex RSL作资源共享管理
- Flex RSL作资源共享管理
- μC/OS-Ⅲ系统的资源管理-临界区共享
- Item 19: 使用srd::shared_ptr来管理共享所有权的资源
- 公共资源管理与共享子系统——公共资源管理模块(转载)
- 华软资源共享--免费下载380套大型企业管理源码
- Flex中的资源管理
- Flex RSL作资源共享管理
- 论远程教育及资源共享信息项目的质量管理
- 从绩效管理到价值管理,从资源共享到资源创新
- 公共资源管理与共享子系统——公共资源共享模块
- Effective Modern C++ 条款19 用std::shared_ptr管理共享所有权的资源
- 公共资源管理与共享子系统——公共资源管理模块
- Linux下挂载windows域管理下的共享资源
- 这段时间开发了一个共享软件,主要做IP资源管理的(SmartIPView),大家有兴趣可以看看,或给指点指点
- Item 19: 使用srd::shared_ptr来管理共享所有权的资源
- 2003系统访问其他电脑的共享资源:管理工具--服务--Server、Workstation、Computer Browser三个主要服务开启
- Item 19: 使用srd::shared_ptr来管理共享所有权的资源
- VisualNet广电网络资源管理系统共享外部数据的方法