actionscript-3 - 为什么我无法删除该影片剪辑?

标签 actionscript-3 flash actionscript flash-cs3 cs3

我在 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 的方式上,这就是我需要帮助的地方。

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

How to make a MovieClip remove itself in AS3?

最佳答案

在您的示例中,

parent未定义,因此出现错误“术语未定义...”。

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

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

但是根据您提供的评论,[object global] 听起来您可能实际上想要类似的东西:

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

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

关于actionscript-3 - 为什么我无法删除该影片剪辑?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43990657/

相关文章:

apache-flex - 如何关闭嵌入字体的抗锯齿

actionscript-3 - 自动调整动态文本字体大小 as3

actionscript-3 - AS3 播放音频之间不必要的延迟

javascript - 在覆盖 DIV 下隐藏 Flash 的缺点

actionscript - 如何让actionscript运行一次?

ios - Air for iOS App Store 发布问题

java - Android Flash 杂志应用

flash - SWFUpload 在上传时过早关闭连接 (nginx 499)

flash - 在 flash actionscript 3 中转换编码

loops - 循环增量值