如何解决Flash错误2007、2025;分数提高似乎导致游戏崩溃
| 我正在Flash上做一个小游戏,以了解AS3的基础知识。但是,我遇到了一个似乎无法解决的问题。 我有我的播放器“头像”,应该可以拾取出现在屏幕右侧的小硬币。这些硬币移到我的玩家角色可以拾取的左边。我想将它们从屏幕上删除,并在角色拿起硬币时将分数提高10。 但是,似乎有几个错误:当我拿起硬币时,会出现以下错误:TypeError: Error #2007: Parameter child must be non-null
ArgumentError: Error #2025: The supplied DisplayObject must be a child of the caller.
我将硬币推到一个数组,然后在它们上运行一个foreach循环以使它们移动并在它们上调用hitTestObject():
for each(var muntje:Muntje in geldArray)
{
muntje.moveMuntje();
if(playerLola.hitTestObject(muntje))
{
removeChild(muntje);
gameScore.addToValue(10);
}
}
另外,当我拿起硬币时,游戏并不会完全崩溃;它似乎只是停了一下,扔了几条错误消息,然后将得分提高了10,然后游戏继续了。
编辑:我想我不能在这里使用removeChild()因为\'muntje \'实际上不是孩子?我尝试了诸如stage.removeChild(muntje)
之类的方法,但是那也不起作用。我如何去掉舞台上的硬币?
有什么帮助吗?提前致谢。
解决方法
删除DisplayObject的最安全方法是
if (muntje && muntje.parent) muntje.parent.removeChild(muntje);
这样,您不必关心谁握住该对象,它只会从任何内容中删除(如果已将其添加到任何内容中)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。