【问题标题】:Compile-time shared library symbols in FlashFlash 中的编译时共享库符号
【发布时间】:2012-09-26 14:58:30
【问题描述】:

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

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

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

【问题讨论】:

    标签: actionscript-3 flash swc


    【解决方案1】:

    可以通过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.swfshared_lib.swcmainui.swc。在 out mainui 我们也可以使用外部资产。您可以以相同的方式创建另一个资产。

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

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

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

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

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

    现在,它可以工作了。

    希望,这会有所帮助。

    【讨论】:

    • 是的,它有效。我们之前尝试过,但被困在必须输入 URL 上,这没有任何意义。但显然,如果您确保资产在运行时已经可用(通过合并的 SWC),它们不会再次加载,因此 URL 可能是一个模拟值。
    • 据我了解,编译后的 swc 在任何情况下都不会触发加载任何远程数据。
    • 不,它们没有,但关键是在包含运行时共享资源的 SWC 中进行编译可以防止尝试在运行时加载它们(这会失败),因为它们已经存在。跨度>
    猜你喜欢
    • 1970-01-01
    • 2019-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-31
    • 1970-01-01
    相关资源
    最近更新 更多