我在 item_Potion
类的构造函数内有一个 TouchEvent 函数 onTouch
,该函数在触摸 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 的方式上,这就是我需要帮助的地方。
我尝试过的类似来源不起作用:
最佳答案
在您的示例中,
parent
是未定义
,因此出现错误“术语未定义...”。
您可以通过将代码包装在以下位置来避免错误:
if (parent) {
parent.removeChild(this);
}
但是根据您提供的评论,[object global]
听起来您可能实际上想要类似的东西:
event.currentTarget.parent.removeChild(event.currentTarget);
这将删除添加触摸事件监听器的对象。
关于actionscript-3 - 为什么我无法删除该影片剪辑?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43990657/