0

我有一堆我在 Flash CS5 中创建的电影剪辑,都放在舞台上。我使用 ActionScript 3 使用代码动态控制它们中的每一个。但是我想使用 for 循环同时控制所有它们,并且只是更改每个元素的宽度,但它不起作用。

这是我的代码:

for(var i:Number = 0; i < 100; i++)
{
    leftBar+i.width = ( Math.round(channel.rightPeak * 1.1) ) + 60;
}

所以我有 100 个酒吧,每个酒吧leftBar和他们的号码。所以 firstBar 是leftBar1, thenleftBar2等等。但是我不能让它工作。我已经尝试过"leftBar"+ileftBari但它们似乎都不起作用。

4

1 回答 1

0

在循环中选择每个 MovieClip 的正确方法是:

this["leftBar" + i]

新代码:

// Note: We've changed the initial value of i to 1 because you mentioned that
// your first MovieClip was called 'leftBar1' rather than 'leftBar0'.
for(var i:int = 1; i <= 100; i++)
{
    var current:MovieClip = this["leftBar" + i];
    current.width = Math.round(channel.rightPeak * 1.1) + 60;
}

基本上,您想从使用方括号中选择属性leftBar0,leftBar1等。this这和这样做是一样的:

this.leftBar0

也可以用于任何其他类的任何属性或方法:

// Example of Square Bracket notation.
var sprite:Sprite = new Sprite();

sprite["x"] = 10;
trace(sprite.x);

this["addChild"](sprite);
于 2012-07-10T04:12:24.257 回答