开发一个 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]); <-- 这是尝试删除错误时引发错误的部分。它奇怪地删除了其中一些,但不是全部。