1

我正在尝试在其中嵌入 x 个符号:

[Embed(source='graphics/backgrounds.swf', symbol='background01')]
private var Background01 : Class;

问题是我有 100 个背景符号,并且想嵌入它们而不用像下面的代码那样编写每一个符号:

[Embed(source='graphics/backgrounds.swf', symbol='background01')]
private var Background01 : Class;

[Embed(source='graphics/backgrounds.swf', symbol='background02')]
private var Background02 : Class;

[Embed(source='graphics/backgrounds.swf', symbol='background03')]
private var Background03 : Class;

相反,我想使用 2 个这样的循环:

for (var i = 0;i < 10;i++)
{
    for (var j = 0;j < 10;j++)
    {
        [Embed(source='graphics/backgrounds.swf', symbol='background' + i + j )]
        // code for adding this to an 2d-array or something
    }
}

这不起作用,因为它告诉我元数据是错误的,所以我的问题是:

是否有可能做到这一点?还是有类似的方法可以做到这一点?

4

2 回答 2

3

是的,遗憾的是马库斯,没有办法做你正在尝试的事情。MetaData 不是 AS3,它没有被评估,所以你不能以你尝试的方式使用它。

但是,如果无论如何您要嵌入 100 个背景符号,为什么不在时间轴的一个帧上创建一个单独的 MovieClip 呢?然后嵌入该符号一次并使用 gotoAndStop 转到您想要的那个?

100 个背景在开始时全部加载到内存中,但总的来说,这对我来说是一种狡猾的方式。更好的方法可能是在需要时将背景加载到内存中或从内存中加载出来。当然,这取决于它们的用途,但“背景”这个名称向我表明,这可能是一个更好的行动方案。

于 2010-02-23T08:46:08.583 回答
1

我不相信您可以将元指令放在常规代码语句中。它们是您正在编写的类范围内变量声明的一部分。

如果编写这么多变量很麻烦,并且您已经按顺序命名了符号,请在您最喜欢的文本编辑器中编写一个 javascript 宏(我使用并喜欢 ActiveState 的 KomodoEdit,它是免费的)并让它吐出您可以粘贴的文本进入你的类 ActionScript。

于 2010-02-22T20:38:05.350 回答