Flash中的编译时共享库符号

时间:2012-09-26 14:58:31

标签: 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的符号中(无需复制)。这可能吗?

1 个答案:

答案 0 :(得分:2)

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

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

以下是一个例子:

  1. 创建包含共享资源的文档。让它的名字为'shared_lib'
  2. 创建一些符号。准备RSL:
    • 在Flash IDE中,选择Library->您的符号(右键单击) - > Properties ...
    • 选择Export for ActionScript& Export in frame 1,输入符号名称
    • 选择Export for runtime sharing。输入该swf的名称:'shared_lib.swf'
    • OK
    • Publish它与SWF和SWC
  3. 所以,现在我们有了我们的图书馆。让我们创建一些将使用它的资产

    1. 创建另一个文档,我们称之为'mainui'。
    2. 返回'shared_lib',选择Library导出的符号,CTRL + C(或右键单击,复制)
    3. 返回刚创建的'mainui',粘贴到Library
    4. 创建一些其他符号,将其导出为ActionScript并将导入的符号放入其中
    5. 编译,导出到SWC,SWF。
    6. 在此步骤中,我们有shared_lib.swfshared_lib.swcmainui.swc。在mainui之外,我们也可以使用外部资产。您可以以相同的方式创建其他资产。

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

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

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

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

      • 通过 library-path指令:optionaly included mainui.swc
      • 通过包含库指令:完全包含shared_lib.swc

      现在,它会起作用。

      希望,这会有所帮助。