2009-02-17 3 views
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); 
} 

Что плохого в моем коде?

ответ

1

var randomBall_mc: ball = new ball(); должен быть внутри для цикла, чтобы создать более чем один «мяч»

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