0

我正在尝试构建一个点击游戏。我可以将物品从我的库存拖到场景中。当我点击 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:\Users\Stéphan\Desktop\12 octobre\La Brousse en folie tactile\com\laserdragonuniversity\alpaca\DraggedItem.as:145]

这是它发生的时间:

(我点击我的物品栏,拿走我的物品,将它拖到场景中,在任意位置点击 2 次,物品消失,我再次点击物品栏 --> ERROR 2025)

这是我的 removeDraggedItem 函数:

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();
    }
  }
}

我究竟做错了什么 ?

4

1 回答 1

0

为了避免这个错误,我这样做:

if( itemToBeRemoved.parent )
{
    itemToBeRemoved.parent.removeChild( itemToBeRemoved );
}

我不知道您的代码中存在什么问题,因为它没有向我显示 DragedItem 的内容,尤其是 145。也许您单击 2 次会导致不应该发生的 remove-item 事件?

于 2013-10-13T10:00:34.033 回答