【问题标题】:Better way to include images in AS3 than embed?在 AS3 中包含图像比嵌入更好的方法?
【发布时间】:2011-12-21 17:57:35
【问题描述】:

我正在制作一个 Flash 游戏(使用 Flixel),我有很多 sprite,它们的图像(主要是 .png 格式)需要包含在我的游戏中。我习惯使用如下代码:

[Embed(source = "../../lib/ship-0001.png")]private var _ship0001Sprite:Class;

为了包含一个图像文件。除了嵌入之外,我还有其他方法可以做到这一点吗?如果可能,我想使用 for 循环,按编号获取每个需要的文件。这样,如果每种船类型都有几行(抓取它的精灵、图标、商店视图等),我可以只更改一个变量(例如 NUM_SHIP_TYPES)并按编号为新船添加文件。

在文件包含在 .swf 中的情况下,嵌入是唯一的方法,还是有其他方法可以做到这一点?或者有没有办法我可以使用 for 循环 with embed?

【问题讨论】:

    标签: actionscript-3 image actionscript embed flixel


    【解决方案1】:

    如果您有很多资源,最好的方法是将它们保留为外部文件并使用Loader 加载它们。

    这样您就可以显示进度条,而且正如您所说,它还可以更轻松地管理您的资产。

    【讨论】:

    【解决方案2】:

    您是想让对象在同一个 swf 中随时可用,还是要从外部加载它们。会是我想到的第一个问题。

    • 如果您想在 swf 中嵌入图像:将它们全部添加到一个 fla 中,从它创建一个 swc 并在您的项目中使用它们。当你想改变一些东西时,改变fla。重新生成swc。重新编译。

    • 如果您希望在运行时加载图像,请使用 UrlLoader,我个人更喜欢使用 LoaderMax,它是 greensock 包的一部分。它为您提供了更多使用加载的选项。这是一个可以帮助您的示例:http://www.greensock.com/loadermax-tips/

    【讨论】:

      【解决方案3】:

      这可能不是一个受欢迎的答案。但这取决于偏好。 I'm not trying to start a best practices discussion, just listing a possibility.

      如果每艘船都有多个图像。并且每艘船的图像数量相同,那么以下可能是可能的。如果没有,那就完全忽略我的建议。

      为您的每种飞船类型创建一个文件夹,然后在该文件夹中创建一个类文件,并将您的图像与类文件一起放置在该文件夹中..

      package shipimages.ship1 { class Ship1Images {
          [Embed(source="0001.png")] public var img0001:Class;
          [Embed(source="0002.png")] public var img0002:Class;
          [Embed(source="0003.png")] public var img0003:Class;
      } }
      

      .

      package shipimages.ship2 { class Ship2Images {
          [Embed(source="0001.png")] public var img0001:Class;
          [Embed(source="0002.png")] public var img0002:Class;
          [Embed(source="0003.png")] public var img0003:Class;
      } }
      

      但正如我所说,这仅在小情况下有益,但这确实意味着一切都更加细分,如果您要制作接口,则可以轻松完成工厂模式。

      【讨论】:

      • 这实际上是一个好主意,尽管您可能是对的,这不是最佳实践。如果我这样做,每种船型都会有自己的文件夹,并且该船型的所有内容都将在该文件夹中。谢谢!
      • 这些类文件可以通过简单的脚本或工具自动生成,只需更改文件名中的数字并将它们替换为预定义的模式。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-03-19
      • 2014-06-14
      • 1970-01-01
      • 1970-01-01
      • 2014-12-20
      • 2022-10-24
      • 2011-11-18
      相关资源
      最近更新 更多