在Flash CS5中,似乎可以选择将.swc文件导入库中,但是作为RSL(运行时共享库)。
此选项(swc)与使用运行时共享库.swf文件有什么区别?
此外,如果您选择.swc文件,并选择“info”(“i”)图标,似乎有几个选项.swc ...“合并到代码”,“外部”,“运行时共享库“:
答案 0 :(得分:7)
SWC是一个编译库,当你构建它时捆绑到你的应用程序的SWF中。这会创建一个更大的应用程序文件(在浏览器中加载需要更长的时间),这意味着每次启动应用程序都需要相同的时间来加载。如果生成的SWF相当大,则每次启动都需要一段时间。这些库是“静态链接的”(即包含在最终编译的SWF中)。
RSLs是动态链接到您的应用程序的编译库。您将它们构建为单独的SWF,并将它们作为RSL添加到项目中。应用程序的编译器将创建一个链接,允许应用程序在运行时使用它,而不是将其导入主SWF文件。当您的应用程序启动时,它将尝试定位RSL并动态加载整个库。这会增加应用程序的初始负载;但是,一旦定位并加载,它们就会被缓存,随后的应用程序启动应该非常快。
RSL有很多好处,也有一些缺点。由于它们未捆绑到您的应用程序中,因此您的SWF更小并且可以更快地启动。它还允许您在应用程序中分隔将由其他应用程序使用的库。因此,“共享”库。
然而,它还带来了成本。我认为RSL(默认情况下)是由编译器使用校验和链接的。您不能简单地修改其他应用程序使用的RSL,而不是重新编译它们以考虑更改。如果修改RSL,则在应用程序启动时会出现错误,因为它所需的校验和与新版本的库不匹配。答案 1 :(得分:0)
如果您允许我进行比较,它的工作方式类似于内部和外部Javascript。 SWC选项就像在主机HTML文件中嵌入Javascript(来自SWC的资源静态链接(in)到主SWF)。 RSL选项就像有一个外部JS文件,它通过<script src>
从HTML文件加载(来自RSL的资源动态链接到您的主SWF。