2009-02-17 6 views
0

J'essaie de créer des balles dynamiques en utilisant une boucle for. Pour une raison quelconque, je reçois deux objets (trace show 2 balles et leurs propriétés DIFFERENT), mais sur la scène je peux voir juste un dernier créé.Pour la création dynamique (en boucle)

Ceci est mon code:

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

Qu'est-ce qui ne va pas dans mon code?

Répondre

1

var randomBall_mc: balle = nouvelle balle(); devrait être à l'intérieur de la boucle afin de créer plus d'une « balle »

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

Il semble que vous n'instanciez la boule qu'une seule fois avant la boucle au lieu de le faire à chaque itération.

0

La réponse est sur place, mais le polissage du code un peu:

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

Questions connexes