【发布时间】:2013-04-04 23:21:09
【问题描述】:
在制作 Flash 游戏时,在之前的游戏中,我让敌人通过使用阵列进入,当他们被杀死或离开舞台时,我会将它们从阵列中移除。出于某种原因,当我在这个游戏中使用完全相同的代码时,当我尝试删除数组对象时会抛出 1009: 错误,基本上是说那里什么都没有。 . .这很奇怪。
代码如下:
public function addZombie()
{
var zom:Zombie = new Zombie();
zom.y = 20;
zom.x = Math.floor(Math.random()*(1 + 500 - 30)) + 30;
addChild(zom);
zombies.push(zom);
numZombies++;
}
这就是添加进去的函数,zombies是数组,在这个函数中被压入数组中。这是我试图删除它的代码:
for (var i:int = 0; i < zombies.length; i++)
{
if (zombies[i].y + zombies[i].height / 2 > 400) {
removeChild(zombies[i]);
zombies.splice(i,1);
numZombies--;
addZombie();
}
}
removeChild(僵尸[i]);
【问题讨论】:
-
removeChild(zombies[i]);是引发错误的行对我来说没有意义。这意味着zombies[i]是null不可能是这种情况,因为您在上一行的测试已经使用它没有任何问题。
标签: actionscript-3 flash