flash builder4使用外部SWC库

flash builder(下面简称FB)使用SWC文件的方法有三种,一种是合并到代码,一种是外部,一种是运行时共享库(RSL)

(图1)

1)合并到代码就不用说了,显而易见

2)外部

(可实现主程调用库时有代码提示,而库又可以由主程动态加载卸载)

此种方法简单来说就是欺骗编译器,项目中实际上没有这个库,但是编译时当作有这个库来编译,这样即使调用到库里面的东西,编译器也不会因为找不到类型而编译错误,但就这样简单地运行是运行不了的。下面以例子说明:

主类mm, 在这个项目中添加了一个外部swc,swc中有一个Index类

使用库时有代码提示:

 编译器不报错:

 

但运行会出错:


要使外部swc库能正确运行,需要在调用库之前用loader把库加载进来。如图:
使用Index之前把library加载到程序同域(currentDomain),关于程序域这里不展开了
 上面的library.swf其实就是从swc文件中提取出来的。swc文件本质是一个归档文件,可以用winrar这类软件打开,里面包含一个swf和一个xml描述文件。

运行成功:
 

 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在运行过程中进行加载和卸载。

你可能感兴趣的:(技术空间)