【问题标题】:Embedding loads of images嵌入大量图像
【发布时间】:2013-10-13 09:02:57
【问题描述】:

我有 42 张图像要嵌入,然后放在一个数组中。 我试图在 for 循环中执行此操作,但它似乎不起作用。 我怎样才能避免有 42 条嵌入线 + 一条很长的数组线?

【问题讨论】:

  • 供将来参考,for循环不起作用的原因是因为该循环在运行时运行,而嵌入发生在编译时。这是应用程序的两个不同的运行点。您可以进行条件编译,但这在这种情况下确实没有帮助

标签: arrays actionscript-3 flash embed


【解决方案1】:

嵌入多个图像而不为每个图像嵌入线的唯一方法是使用 Sprite Sheet(有时称为“纹理图集”,或简称为“Sprite”)。这将获取一个图像文件夹,并生成一个大图像。并为您提供文件夹中所有图像的数据文件(使用 XML 或 JSON)以及它们在 Sprite 表中的位置。

然后您可以嵌入 Sprite Sheet 一次。

为此,您需要两件事:

1/ 用于创建精灵表的软件...有很多可用的工具,例如我使用的一个是 Texture Packerhttp://www.codeandweb.com/texturepacker

2/ 一个动作脚本类或框架,旨在处理从您的 sprite 表中引用图像...这是 Starling 的本机功能,但如果您还没有准备好支持 Flash Player 11,那么您可以找到一些公开可用的为此的框架: 例如:Spriterhttp://abeltoy.com/projects/spriterAS3/usage.html 有一个名为 BitmapSpriter 的类来处理 AS3 中的原生精灵表。

【讨论】:

    【解决方案2】:

    您可以使用 for each 循环。

    var items:Array = ["hi", "there", "bob"];
    for (var index in items) {
        trace(index+" => "+items[index]); // traces "0 => hi", "1 => there" and "2 => bob"
    }
    

    【讨论】:

      猜你喜欢
      • 2011-04-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-15
      • 1970-01-01
      相关资源
      最近更新 更多