flash builder(下面简称FB)使用SWC文件的方法有三种,一种是合并到代码,一种是外部,一种是运行时共享库(RSL)
(图1)
1)合并到代码就不用说了,显而易见
2)外部
(可实现主程调用库时有代码提示,而库又可以由主程动态加载卸载)
此种方法简单来说就是欺骗编译器,项目中实际上没有这个库,但是编译时当作有这个库来编译,这样即使调用到库里面的东西,编译器也不会因为找不到类型而编译错误,但就这样简单地运行是运行不了的。下面以例子说明:
主类mm, 在这个项目中添加了一个外部swc,swc中有一个Index类
使用库时有代码提示:
![flash builder4使用外部SWC库 - 逐梦 - 随梦飞翔](http://img2.ph.126.net/Al_T_UUZ4tUEWuL-qNv87Q==/6598226452890875753.png)
编译器不报错:
![flash builder4使用外部SWC库 - 逐梦 - 随梦飞翔](http://img1.ph.126.net/Xp7FPRIMuFMzQqL3PU3IPA==/1830431773649873977.png)
但运行会出错:
![flash builder4使用外部SWC库 - 逐梦 - 随梦飞翔](http://img2.ph.126.net/UmS5egHCd68Kq133JRb4Aw==/764204561869720574.png)
要使外部swc库能正确运行,需要在调用库之前用loader把库加载进来。如图:
使用Index之前把library加载到程序同域(currentDomain),关于程序域这里不展开了
![flash builder4使用外部SWC库 - 逐梦 - 随梦飞翔](http://img1.ph.126.net/RCouyf0pOCjn9-_L5vC6SA==/6598244045076921073.png)
运行成功:
![flash builder4使用外部SWC库 - 逐梦 - 随梦飞翔](http://img0.ph.126.net/DqExBvmAHqJoix8Ryoo4xQ==/6608927999562003684.png)
3)运行时共享库(RSL)
![flash builder4使用外部SWC库 - I love dreaming - 编程初学者的Blog](http://img74.ph.126.net/5jmljgDhphUlgtvtLGOZBQ==/849491479714808736.png)
使用图中步骤一添加SWC库文件,添加后选中链接类型,按编辑,打开下面对话框:
![flash builder4使用外部SWC库 - I love dreaming - 编程初学者的Blog](http://img542.ph.126.net/l1xBxy29UsYomVBT_BpRwQ==/1326873040215186495.png)
如图3,RSL选项中,
若勾选摘要,则要添加验证信息,在这个外部库被加载时进行检验,若主swf与被加载的swf不匹配,则不进行加载。
若勾选了“无”,则如图,部署路径就是相对于你的项目输出文件夹的路径(不支持以“../”的形式表示父级路径),如:FB项目的输出文件夹为bin,部署路径为Sound.swf,则在bin目录下就会有Sound.swf这个外部库;又如:FB项目的输出文件夹为bin,部署路径为Sound/Sound.swf,则bin目录下的Sound文件夹就会有Sound.swf这个外部库。
外部库作RSL时会在程序启动时进行加载,不容易被垃圾回收,因此要慎用!不常用的资源最好使用Loader在运行过程中进行加载和卸载。