当我想删除Child时出现错误提供的DisplayObject必须是调用者的子级。我尝试了很多不同的方法,我在这里找到了stackoverflow,但都没有。
if(player.hitTestObject(activePowerup as DisplayObject)
{
activePowerup.onPlayerPick(player);
this.parent.removeChild(activePowerup as DisplayObject);
activePowerups.splice(activePowerup, 1);
}
我不知道问题是什么,但我希望你们可以帮助我。
答案 0 :(得分:1)
如果您的activePowerup
绝对是this.parent
的孩子,那么我怀疑问题就在于您的拼接。假设activePowerups
是Array
,splice()
无法正常工作(see the docs here)。您需要提供splice()
activePowerup
的索引:
activePowerups.splice(activePowerups.indexOf(activePowerup), 1);
否则,您可能会拼错错误的启动,然后在下次运行此代码时尝试删除同一个孩子两次。