0

我正在尝试通过使用for循环来创建动态球。出于某种原因,我得到了两个对象(跟踪显示 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

似乎您在循环之前只实例化了一次球,而不是为每次迭代都做一次。

于 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 回答