我完全不明白的错误 2025



我正在尝试构建一个点击游戏。我可以将物品从我的物品栏拖到场景中。我想在单击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次会导致不应该的删除项目事件?