我有一个对象列表,我试图遍历列表并检查是否发生了碰撞,此时将播放补间动画,最后将执行删除对象的功能。
stage.addEventListener(Event.ENTER_FRAME, hitTest);
function hitTest(e:Event ):void
{
for each (bullet in bullets)
{
if (bullet.parent == null)
{
bullets.splice(bullets.indexOf(bullet),1);
}
else if (bullet.hitTestObject(shark))
{
trace("HIT1");
bullet.gotoAndPlay(2); //part that's giving me trouble
bullets.splice(bullets.indexOf(bullet),1);
trace("HIT");
}
else
{
for each (enemy in enemies)
{
if (enemy !=null && bullet.hitTestObject(enemy))
{
enemies.splice(enemies.indexOf(enemy),1);
enemy.remove();
enemy = null;
bullets.splice(bullets.indexOf(bullet),1);
bullet.remove();
break;
}
}
}
}
通过列表测试各种事情。
在Bullet类的子弹对象的补间动画设置结束时
stop();
this.remove();
这是项目符号类中的删除功能
public function remove() {
parent.removeChild(this);
this.removeEventListener(Event.ENTER_FRAME, moveMe);
}
特定错误
TypeError: Error #1009: Cannot access a property or method of a null object reference.
at Bullet/remove()
at Bullet/frame20()
第20帧是补间动画的最后一帧,其代码高于^^
感谢您的帮助。