actionscript for loop iterator来更改影片剪辑名称

时间:2012-07-10 04:02:43

标签: actionscript-3 flash-cs5 movieclip

我有一堆我在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,然后是leftBar2,依此类推。但是我无法让它工作。我尝试了"leftBar"+ileftBari,但似乎都没有。

1 个答案:

答案 0 :(得分: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中选择属性leftBar1this等。这与此相同:

this.leftBar0

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

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

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

this["addChild"](sprite);