我正在尝试检查屏幕上是否有对象的实例,如果有 - 删除它。代码如下 -
if (gracetarget.parent)
{
gracetarget.removeEventListener(Event.ENTER_FRAME, gracetarget.graceListener);
gracetarget.parent.removeChild(gracetarget);
}
else if (springtarget.parent)
{
springtarget.removeEventListener(Event.ENTER_FRAME, springtarget.springListener);
springtarget.parent.removeChild(springtarget);
}
我收到以下错误 - TypeError:错误#1009:无法访问空对象引用的属性或方法。
我想这是因为我正在尝试删除一个不存在的对象,但是如果对象存在,IF语句肯定只能运行吗?
答案 0 :(得分:2)
首先测试您要删除的对象是否为null。
if (gracetarget != null && gracetarget.parent) {
...
}
如果键入gracetarget(例如MovieClip),则可以执行
if (gracetarget is MovieClip && gracetarget.parent) {
...
}
答案 1 :(得分:0)
gracetarget / springtarget未从阶段中删除的原因是因为代码中的其他位置将其设置为null。您在代码中的某处丢失了这些变量。
再次浏览班级代码并检查您正在设置gracetarget / springtarget的位置并跟踪它。还要检查你是否从课堂外设置它的值,并在debuggung
的所有这些位置放置明显的痕迹如果变量gracetarget或springtarget被设置为null,则实际的动画片段仍然在舞台上,因为gracetarget和springtarget只是指向实际动画片段的指针。
我相信你可以轻松调试这个。祝你好运。