Flash hitTestObject的问题

Flash hitTestObject的问题,flash,actionscript-3,Flash,Actionscript 3,我正在为我的角色编写HitTestObject: (每个代码都位于ENTERFRAME部分) -对于角色: if(bullet.bulletList.length>0) for (var i:int = 0; i < bullet.bulletList.length; i++) { if(this.hitTestObject(bullet.bulletList[i])) { updateHP();

我正在为我的角色编写HitTestObject: (每个代码都位于ENTERFRAME部分)

-对于角色:

if(bullet.bulletList.length>0)
    for (var i:int = 0; i < bullet.bulletList.length; i++)
    {   if(this.hitTestObject(bullet.bulletList[i]))
           {
               updateHP();
                        }
             }
一开始阶段中没有项目符号时,不会产生错误,但当第一个项目符号将子项添加到阶段时,出现如下错误:

TypeError: Error #2007: 参数 hitTestObject 不能为空。(something's like hisTestOject cannot be empty)
at flash.display::DisplayObject/_hitTest()
at flash.display::DisplayObject/hitTestObject()
at com.miraclei::char/loop()
我认为这是因为当第一个项目符号从stage移除时,hitTestObject函数在项目符号列表中找不到任何内容,然后发生了错误。我试了很多方法,但还是不行!
有人对此有解决方案吗?

如果我读对了,诀窍是按数字降序遍历您的项目符号数组:

for (var i:int = bullet.bulletList.length-1; i > -1; i-- )
{   etc..
这样就不会遇到空数组位置


希望这有帮助

我建议您使用这个开源库进行冲突检测:问题可能是因为在删除项目符号时,留下了空的数组位置。但是,您还没有发布如何删除子弹的代码,因此我们无法真正确定。
for (var i:int = bullet.bulletList.length-1; i > -1; i-- )
{   etc..