我有一堆我在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"+i
和leftBari
,但似乎都没有。
答案 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
中选择属性leftBar1
,this
等。这与此相同:
this.leftBar0
并且还可以用于任何其他类的任何属性或方法:
// Example of Square Bracket notation.
var sprite:Sprite = new Sprite();
sprite["x"] = 10;
trace(sprite.x);
this["addChild"](sprite);