我正在尝试使用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);
}
我的代码有什么问题?
答案 0 :(得分:1)
看起来你只是在循环之前将球实例化一次,而不是每次迭代都这样做。
答案 1 :(得分:1)
var randomBall_mc:ball = new ball(); 应该在for循环中,以便创建多个“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);}
答案 2 :(得分: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);
}