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