2

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

在此处输入图像描述

ui.fla 和 login.fla 中都使用了一些符号,因此我们希望将它们放在共享库中,就像这样。

在此处输入图像描述

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

4

1 回答 1

2

可以通过Remote Shared Library(RSL) 共享资产。

但是请注意:我在生产中没有看到这种方式,这只是我几年前的实验。

这是一个例子:

  1. 创建包含共享资产的文档。让它有名字'shared_lib'
  2. 创建一些符号。为 RSL 准备:
    • 在 Flash IDE 中选择 Library->your symbol(right click)->Properties...
    • 选择Export for ActionScript& Export in frame 1,输入符号名称
    • 选择Export for runtime sharing。键入该 swf 的名称:'shared_lib.swf'
    • OK
    • Publish它到 SWF 和 SWC

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

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

在这一步,我们有shared_lib.swf和。我们也可以使用外部资产。您可以以相同的方式创建另一个资产。shared_lib.swcmainui.swcmainui

让我们谈谈将使用我们的资产的项目设置。

那么,我们目前究竟拥有什么?Mainui.swc有符号,其中包含另一个“虚拟”符号。如果您只是尝试mainui.swf使用一些分析器在浏览器中加载,您会看到,首先它会加载mainui.swf,然后会加载shared_lib.swf

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

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

  • 通过library-path 指令:可选包括mainui.swc
  • 通过包含库指令:完全包含shared_lib.swc

现在,它将起作用。

希望,这会有所帮助。

于 2012-09-26T19:52:44.113 回答