actionscript-3 - Flash 中的编译时共享库符号

标签 actionscript-3 flash swc

我们的 Flash 项目具有以下结构。两个带有图形资源(符号)的 FLA 文件,使用 SWC 导入到纯 AS3 代码项目中。

enter image description here

有一些符号在 ui.fla 和 login.fla 中都使用,因此我们希望将它们放入共享库中,如下所示。

enter image description here

问题是我们不想在例如中使用shared.fla的符号ui.fla 的代码,但是在创作环境中,这样我们就可以将符号从shared.fla 拖到ui.fla 的符号中(无需复制)。这可能吗?

最佳答案

可以通过远程共享库 (RSL) 共享资源。

但是请小心:我在生产中没有见过这种方式,这只是我几年前的实验。

这是一个例子:

  1. 创建包含共享资源的文档。让它命名为“shared_lib”
  2. 创建一些符号。为 RSL 做好准备:
    • 在 Flash IDE 中选择“库”->“您的符号”(右键单击)->“属性...”
    • 选择导出为 ActionScript在第 1 帧中导出,输入符号名称
    • 选择导出以进行运行时共享。输入该 swf 的名称:“shared_lib.swf”
    • 确定
    • 发布到 SWF 和 SWC

所以,现在我们有了我们的图书馆。让我们创建一些将使用它的 Assets

  1. 创建另一个文档,我们将其命名为“mainui”。
  2. 返回“shared_lib”,在Library中选择导出的符号,CTRL + C(或右键单击,复制)
  3. 返回刚刚创建的“mainui”,粘贴到Library
  4. 创建一些其他符号,将其导出为 ActionScript 并将我们导入的符号放入其中
  5. 编译它,导出为 SWC、SWF。

在这一步,我们有 shared_lib.swfshared_lib.swcmainui.swc。在 mainui 中,我们也可以使用外部资源。您可以用相同的方式创建其他 Assets 。

让我们讨论一下将使用我们的资源的项目设置。

那么,我们现在到底拥有什么? Mainui.swc 具有包含另一个'virtual' 符号的符号。如果您尝试使用某些探查器在浏览器中加载 mainui.swf ,您会看到,首先加载 mainui.swf,然后加载 shared_lib .swf.

但是,如果您尝试创建一些项目并包含 mainui.swc,您将收到 undefined symbol 的错误,因为所有具有 mainui 的项目 - 只是对来自共享库的符号的虚拟引用。

要解决此问题,您必须在项目中完全包含 shared_lib.swc。在这种情况下,您将拥有:

  • 通过库路径指令:可选包含mainui.swc
  • 通过include-libraries指令:完全包含shared_lib.swc

现在,它会起作用了。

希望,这会有所帮助。

关于actionscript-3 - Flash 中的编译时共享库符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12604659/

相关文章:

javascript - 删除正则表达式末尾的额外空格?

javascript - Javascript 和 Flash/ActionScript 之间的交互无需外部接口(interface)?

java - 如何从浏览器捕获音频?

actionscript-3 - Flash中的Youtube Chromeless Player控件

windows - AS3/AIR - 桌面应用程序警报(?)

actionscript-3 - AS3 中的评估公式?

java - 从游戏模型获取图像

java - 如何在flash builder项目中使用swc文件

apache-flex - Flex/Flash:如何在多个SWC中嵌入相同字体