一、使用RSL
1.在项目文件夹中点右建,选择"properties"-"Flex Build Path"-"Library Path"
2.该选项卡上我们看到"FrameWork linkage",默认是"Merged into cdoe"(FLEX4默认是RSL)
3.点开下拉,选择"runtime shared library(RSL)"
4. 针对自定义的SWC,修改其link type为RSL,选择None,同时勾上Automatically extract swf to deployment path(自动将SWF提取到部署路径)。如果想对不同域的RSL共享,则选择Digests(摘要),同时指定其Policy file url(策略文件)。具体可参考FLEX SDK中的SWC文件处理方式。
5.点击OK
二、RSL与MODULE的区别
先来看一组关于module1,module2,module3,module4,module5,module6,Application的数据
不使用RSL,不使用MODULE:843K,844K,863K,851K,851K,833K,1581K
只使用RSL:351K,353K,358K,358K,354K,348K,1022K
只使用MODULE:106K,107K,110K,113K,107K,103K,1581K
同时使用RSL和MODULE:104K,106K,109K,111K,106K,101K,1022K
注:
1.上述的RSL只包含FLEX FRAMEWORK(553K)
2.MODULE已经勾选optimize for application
三、RSL注意事项
1.RSL不是对于所有的应用都有益. 需要对应用RSL前后的下载时间和启动时间都测试过, 才能得到正确的结论.
2.RSL 通常会增加应用的启动时间. 这是应用不管整个库实际如何使用, 只是简单地全部加载整个库. 就这一点来说, RSL越小越好. 这与静态链接库的使用是不同的. 当你编译一个Felx应用时, 编译器只解开需要的组件. 一般来说, 库的大小可以是任意的, 它只影响编译时间而不会影响下载的时间.如果在好几个应用中使用相同的组件库, 那么可以考虑合并这些库, 形成一个RSL. 但是如果库合并后, 每个应用只会用到其中的一小部分, 那么还不如多加载几个小RSL更高效.
3.如果一些类重复打包在多个RSL中, 那么一定要注意同步更新的问题.
4.RSL不能应用在基类是Sprite或者MovieClip的纯ActionScript项目中. 因为RSL需要基类知道如何加载RSL, 比如: Application或者SimpleApplication.