为什么我不能删除这个 Movieclip?
Why can't I remove this Movieclip?
我在 item_Potion
class 的构造函数中有一个 TouchEvent 函数 onTouch
,它在触摸 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?
parent
在您的示例中是 undefined
,因此错误 "a term is undefined...".
您可以通过将代码包装在以下位置来避免错误:
if (parent) {
parent.removeChild(this);
}
但根据您提供的评论,[object global]
听起来您可能真的想要这样的东西:
event.currentTarget.parent.removeChild(event.currentTarget);
这将删除添加了触摸事件侦听器的对象。
我在 item_Potion
class 的构造函数中有一个 TouchEvent 函数 onTouch
,它在触摸 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?
parent
在您的示例中是 undefined
,因此错误 "a term is undefined...".
您可以通过将代码包装在以下位置来避免错误:
if (parent) {
parent.removeChild(this);
}
但根据您提供的评论,[object global]
听起来您可能真的想要这样的东西:
event.currentTarget.parent.removeChild(event.currentTarget);
这将删除添加了触摸事件侦听器的对象。