0

forループを使用して動的ボールを作成しようとしています。何らかの理由で 2 つのオブジェクト (トレース ショー 2 ボールとそれらの異なるプロパティ) を取得しますが、ステージ上では最後に作成されたオブジェクトしか表示されません。

これは私のコードです:

var randomBall_mc:ball=new ball();
for (i=1; i<3; i++)
{
        addChild(randomBall_mc);
    randomBall_mc.name="randomBall"+i;
    randomBall_mc.x=150*i;
    randomBall_mc.y=175;
    randomBall_mc.height=20*i;
    randomBall_mc.width=20*i;
        trace("randomBall"+i);
    trace(randomBall_mc.x);
    trace(randomBall_mc.height);
}

私のコードで何が間違っていますか?

4

3 に答える 3

1

反復ごとに行うのではなく、ループの前にボールを1回だけインスタンス化しているようです。

于 2009-02-17T12:53:03.233 に答える
1

var randomBall_mc:ball=新しいボール(); 複数の「ボール」を作成するには、for ループ内にある必要があります。

for (i=1; i<3; i++) {
var randomBall_mc:ball=new ball();**
addChild(randomBall_mc);
randomBall_mc.name="randomBall"+i;
randomBall_mc.x=150*i; randomBall_mc.y=175;
randomBall_mc.height=20*i;
randomBall_mc.width=20*i; trace("randomBall"+i);
trace(randomBall_mc.x);
trace(randomBall_mc.height);}
于 2009-02-17T12:54:58.050 に答える
0

答えは的を射ていますが、コードを少し磨き上げます。

var ball:Ball; // Observe convention: capitalise class names var i:int = 0; // Make sure to type your variables for (; i < 3; i++) { ball = new Ball(); ball.name = "randomBall"+i; ball.x = 150 * i; ball.y = 175; ball.height = 20 * i; ball.width = 20 * i; addChild(ball); // Configure your instance first; // then add it to the display list trace("ball:", i, ball.x, ball.height); }

于 2009-07-30T18:36:41.567 に答える