Для (цикла) динамического создания - PullRequest
0 голосов
/ 17 февраля 2009

Я пытаюсь создать динамические шары, используя цикл for. По какой-то причине я получаю два объекта (trace show 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);
}

Что не так в моем коде?

Ответы [ 3 ]

1 голос
/ 17 февраля 2009

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 голос
/ 17 февраля 2009

Кажется, что вы создаете мяч только один раз перед циклом, а не делаете это для каждой итерации.

0 голосов
/ 30 июля 2009

Ответ точен, но немного улучшен код:

</p>

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...