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、その後も同様ですleftBar2。しかし、私はそれを機能させることができません。私も試してみましたが、どれもうまくいかないようです"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;
}

基本的に、角括弧を使用してプロパティleftBar0leftBar1などを選択します。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 に答える