我正在尝试构建一个点击游戏。我可以将物品从我的物品栏拖到场景中。我想在单击2次时使对象消失。它正在工作,但是当对象消失时,我遇到了错误 2025..(我可以忽略它,一切正常,但我想纠正此错误)。
我的错误说:
Error #2025: The supplied DisplayObject must be a child of the caller.
at flash.display::DisplayObjectContainer/removeChild()
at com.laserdragonuniversity.alpaca::DraggedItem/removeDraggedItem()
[C:UsersStéphanDesktop12 octobreLa Brousse en folie tactilecomlaserdragonuniversityalpacaDraggedItem.as:145]
这是它发生的时候:
(我点击我的物品栏,拿起我的物品,将其拖到现场,在任何地方点击 2 次,物品消失,我再次点击库存 ->错误 2025)
这是我的删除拖动项函数:
private function removeDraggedItem(e:MouseEvent) {
if(timer.running==true) {
if(e.buttonDown) {
stageRef.removeEventListener(MouseEvent.MOUSE_MOVE, dragItem);
stageRef.removeEventListener(Event.ENTER_FRAME, itemHitTest);
draggedItem.removeEventListener(MouseEvent.MOUSE_DOWN, itemClick);
stageRef.removeChild(draggedItem);
toolbar.useText.text = "";
if (stageRef.contains(this))
stageRef.removeChild(this);
Mouse.show();
Engine.playerControl = true;
}
} else {
if(e.buttonDown) {
timer.start();
}
}
}
我做错了什么?
为了避免此错误,我这样做:
if( itemToBeRemoved.parent )
{
itemToBeRemoved.parent.removeChild( itemToBeRemoved );
}
我无法说出您的代码中的问题是什么,因为它没有向我显示 DraggedItem 的内容,尤其是像 145。也许您单击2次会导致不应该的删除项目事件?