我在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的方式有关,这就是我需要帮助的地方。
我尝试过的类似的来源不起作用:
答案 0 :(得分:2)
parent
为undefined
,因此错误“术语未定义......”。
您可以通过将代码包装在以下内容来避免错误:
if (parent) {
parent.removeChild(this);
}
但根据您提供[object global]
的评论,听起来您可能真的需要这样的内容:
event.currentTarget.parent.removeChild(event.currentTarget);
这将删除添加触摸事件侦听器的对象。