Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 Flash中的编译时共享库符号_Actionscript 3_Flash_Swc - Fatal编程技术网

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

Actionscript 3 Flash中的编译时共享库符号,actionscript-3,flash,swc,Actionscript 3,Flash,Swc,我们的Flash项目具有以下结构。两个带有图形资源(符号)的FLA文件,使用SWCs导入到纯AS3代码项目中 ui.fla和login.fla中都使用了一些符号,因此我们希望将它们放在一个共享库中,如下所示 问题是,我们不希望在ui.fla的代码中使用shared.fla的符号,而是在创作环境中使用,这样我们就可以将符号从shared.fla拖到ui.fla的符号中(无需复制)。这可能吗?可以通过远程共享库(RSL)共享资产 但请注意:我在生产中没有见过这种方法,这只是几年前我的实验 以下是

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

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


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

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

但请注意:我在生产中没有见过这种方法,这只是几年前我的实验

以下是一个例子:

  • 创建包含共享资产的文档。将其命名为“共享库”
  • 创建一些符号。为RSL准备:
    • 在FlashIDE中选择Library->YourSymbol(右键单击)->Properties
    • 在第1帧中选择动作脚本的导出
  • &
    导出
    ,键入符号的名称
  • 选择导出以进行运行时共享。键入该swf的名称:“shared_lib.swf”
  • OK
  • 将其发布到SWF和SWC
  • 所以,现在我们有了我们的图书馆。让我们创建一些将使用它的资源

  • 创建另一个文档,让我们称之为“mainui”
  • 返回到“共享库”,在
    库中选择导出符号,
    CTRL+C
    (或右键单击,复制)
  • 返回到刚创建的“mainui”,粘贴到
  • 创建一些其他符号,将其导出为ActionScript,并将导入的符号放入其中
  • 编译它,导出到SWC,SWF
  • 在这一步中,我们有
    shared_lib.swf
    shared_lib.swc
    mainui.swc
    。在out
    mainui
    中,我们也可以使用外部资产。您可以用同样的方法创建其他资产

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

    那么,我们现在到底有什么
    Mainui.swc
    有一个符号,其中包含另一个虚拟符号。如果您只是尝试使用一些探查器在浏览器中加载
    mainui.swf
    ,您将看到,它首先加载
    mainui.swf
    ,然后加载
    shared_lib.swf

    但是,如果您尝试创建一些项目并包含
    mainui.swc
    ,您将得到未定义符号的错误,因为所有包含mainui-的都只是对共享库中符号的虚拟引用

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

    • 通过库路径指令:可选包含
      mainui.swc
    • 通过包含库指令:完全包含
      shared_lib.swc
    现在,它将起作用


    希望这会有帮助

    是的,它起作用了。我们以前尝试过这个,但是因为必须输入URL而陷入困境,这毫无意义。但显然,如果您确保资产在运行时(通过合并的SWC)已可用,它们不会再次加载,因此URL可能是一个模拟值。据我所知,编译的SWC在任何情况下都不会触发加载任何远程数据。不,它们不会,但关键是,在包含运行时共享资源的SWC中编译可以防止在运行时加载这些资源的尝试(这将失败),因为它们已经存在。