【问题标题】:AS3 Packaging external files into one stand-alone.swfAS3 将外部文件打包成一个独立的.swf
【发布时间】:2011-09-13 23:54:06
【问题描述】:

我创建了一个非常大型的 Flash 游戏,但显然有一个严重的疏忽 - 希望托管我的游戏的 Flash 门户网站需要它在一个独立的 .swf 中。但是,问题是我从外部加载 everything。我从 .plist 文件加载关卡数据,从 .png 加载图像,从 .wav 加载声音,所有这些都位于 .swf 目录的文件夹中。它们是通过 Loader 和 URLRequest 加载的。

有什么办法可以嵌入这些,以便它可以独立运行?最好是比单独编写嵌入行更简单的方法,因为有 1000 多个文件。

非常感谢!

【问题讨论】:

    标签: flash actionscript-3 adobe embed package


    【解决方案1】:

    简短回答:不。

    长答案:因为您使用 Loaders 和 URLRequests,所以每个资产都需要作为外部请求进行访问。您要求一种简单的方法让它们指向您的 SWF 中的资产,但这是不可能的。但是,如果您稍微改变一下您的工作流程,您可能会找到一种在代码更改方面可以接受的方式,并且从长远来看会使您受益。

    如果您使用 Flash Builder、FDT、FlashDevelop 或 IntelliJ 等编辑器,您应该探索 SWC 文件的多种用途。您可以在 Flash IDE 的发布设置中点击“导出为 SWC”复选标记,这将在您每次测试 (Cmd+Enter) fla 文件时创建一个 SWC。您可以在您选择的编辑器中导入该 SWC 文件,并将原始 fla 文件的任何符号引用为 AS3 类。在编译时,flash 编译器会将您的原始资源嵌入到生成的 SWF 中,然后您可以将其分发到您喜欢的任何门户网站。 PNG 和 WAV 是最简单的,对于 .plist,您必须使用 [Embed(...)] 元标记。拥有一个 SWF 的好处还在于您无需预先加载每个单独的资产,并且所有资产的创建都在一个线程中完成。没有更多用于加载资产的事件侦听器意大利面条!

    确保为使用 SWC 正确命名符号和链接属性。您可以使用标准包格式轻松找到您的资产,例如将符号命名为 fla.icons.GreyLogofla.homepage.BackgroundGraphic。如果您有正确的import fla.icons.GreyLogo 方向,您可以通过调用获取徽标

    var logo:GreyLogo = new GreyLogo();
    

    Here is an article that goes into this a little more thorougly. 如果我正确理解您的设置,这将是很多工作,但在未来的项目中可能会有优势。

    干杯,
    EP。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多