2013-10-06 59 views
2

我得到了42个图像,我想嵌入然后放在一个数组。 我试图做一个for循环,但它似乎并没有工作。 我怎么能避免有42条嵌入线+一条非常长的线阵列?嵌入负载的图像

+0

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

回答

2

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

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

为此,您需要两两件事:

1 /软件来创建你的精灵表......有很多可用的工具,我用例如一个是纹理帕克http://www.codeandweb.com/texturepacker

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

0

您可以为每个循环使用一个。

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