我的主游戏循环存在问题。当玩家被摧毁时,我会删除游戏循环的eventListener。但是,我从collisionCheck函数得到一个错误,一个术语是未定义的。即使collisionCheck是gameLoop的一部分,并且eventListener已被删除。
if(planeHP <= 0){
removePlayer();
}
public function removePlayer(){
removeEventListener(Event.ENTER_FRAME, moveGameObject);
trace("removed");
}
public function moveGameObject(event:Event){
collisionCheck();
}
我可以在输出窗口中的错误之前看到“已删除”跟踪。错误总是来自collisionCheck函数。
感谢您的帮助。
答案 0 :(得分:0)
问题是我在collisionCheck中有多个循环,并且调用removePlayer的循环不是最后一个,所以即使我删除了监听器它也会继续。只需在removePlayer()之后添加一个返回,它就解决了问题。