为什么我不能删除这个Movieclip?

时间:2017-05-16 00:21:05

标签: actionscript-3 flash actionscript flash-cs3 cs3

我在onTouch类的构造函数内部有一个TouchEvent函数item_Potion,它在触摸Movieclip时运行。此函数通过一系列无关的检查,然后最终它应该自行删除(Movieclip)。

在onTouch函数结束时,它应该通过执行以下操作来删除自己:this.parent.removeChild(this);

然而,这不起作用。

我收到以下错误消息:

TypeError: Error #1010: A term is undefined and has no properties.
    at Function/item_Potion/$construct/onTouch()[E:\Clients\org\tcdsb\ZenithsReach\item_Potion.as:56]
    at runtime::ContentPlayer/simulationSendTouchEvent()
    at runtime::SimulatedContentPlayer/clientSocketDataHandler()

它为错误消息(第56行)提供的行有以下内容:

this.parent.removeChild(this);

我的进口商品:

`   import flash.display.Stage;
    import flash.display.MovieClip;
    import flash.events.Event;
    import flash.display.*;
    import flash.events.TouchEvent;
    import flash.net.dns.AAAARecord;
    import flash.ui.Multitouch;
    import flash.ui.MultitouchInputMode;`

我知道问题不在于我的代码的其他部分,因为我已尝试使用visible = false;切换此行并且我没有错误。因此,我确信问题与我删除MovieClip的方式有关,这就是我需要帮助的地方。

我尝试过的类似的来源不起作用:

How to make a MovieClip remove itself in AS3?

1 个答案:

答案 0 :(得分:2)

您的示例中

parentundefined,因此错误“术语未定义......”。

您可以通过将代码包装在以下内容来避免错误:

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

但根据您提供[object global]的评论,听起来您可能真的需要这样的内容:

event.currentTarget.parent.removeChild(event.currentTarget);

这将删除添加触摸事件侦听器的对象。