Actionscript 3 删除子项并将其从数组中删除时,键入错误

Actionscript 3 删除子项并将其从数组中删除时,键入错误,actionscript-3,Actionscript 3,当子弹击中斯巴达人时,我在下面的函数中得到一个类型错误(一个术语未定义且没有属性) 子弹是一个阵列 斯巴达人是一个阵型 这个功能基本上是移动子弹和斯巴达人,同时检查他们是否相撞,以及是否两者都被移除 function loop(event:Event) { for (var bcount=0; bcount < bullets.length; bcount++) { if (bullets[bcount].x <= 1055) {

当子弹击中斯巴达人时,我在下面的函数中得到一个类型错误(一个术语未定义且没有属性)

子弹是一个阵列

斯巴达人是一个阵型

这个功能基本上是移动子弹和斯巴达人,同时检查他们是否相撞,以及是否两者都被移除

function loop(event:Event)
{
    for (var bcount=0; bcount < bullets.length; bcount++)
    {
        if (bullets[bcount].x <= 1055)
        {
            bullets[bcount].x = bullets[bcount].x + bulletSpeed;
        }
        else
        {
            removeChild(bullets[bcount])
            bullets.splice(bcount, 1)
            bcount--
        }
        
        for (var spcount=0; spcount<spartans.length; spcount++)
        {
            spartans[spcount].x = spartans[spcount].x - spartanSpeed
            if (bullets[bcount].hitTestObject(spartans[spcount]))
            {
                removeChild(spartans[bcount])
                spartans.splice(spcount, 1)
                spcount--
                removeChild(bullets[bcount])
                bullets.splice(bcount, 1)
                bcount--

            }
        }
    }


}
函数循环(事件:事件)
{
对于(变量bcount=0;bcount如果(项目符号[b计数].x第一个

在第二个循环中,我想你想除掉斯巴达人[spcount]

所以改变这条线

 removeChild(spartans[bcount])

在第二个循环中,您应该检查bcount是否小于零。因为在第一个循环和第二个循环中,您都减少了bcount,所以bcount可以是-1


例如,项目符号[0]的x大于1055,因此bcount将为-1。如果不发生这种情况,在第二个循环中,如果冲突在某些时间发生,bcount将小于0。

在哪里定义数组?在为循环函数添加事件侦听器之前或之后?
  removeChild(spartans[spcount])