2009-02-17 171 views
0

我试图通过使用for循环来创建动态球。 由于某种原因,我得到了两个物体(跟踪显示2个球和他们的不同属性),但在舞台上我只能看到最后一个创建的物体。For(循环)动态创建

这是我的代码:

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); 
} 

什么是错在我的代码?

回答

1

var randomBall_mc:ball = new 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);} 
1

看起来好像你只是在循环之前实例化一次球,而不是每次迭代都要这样做。

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); }