执行后删除movieclip

时间:2013-05-01 09:59:50

标签: actionscript-3 flash-cs6

好的,我在第1帧上有这段代码

 addEventListener(Event.ENTER_FRAME, changeframe);

 function changeframe(event:Event):void
 {
 btsakhir.y -=  6;

 if (btsakhir.y <= 56)
 {
     nextFrame();
 }
 }

但是当我在下一帧进行测试时,它会显示无法访问空对象引用的属性或方法。但如果在第2帧我添加实例btsakhir它不是错误。但是我想要的第2帧是,没有btsakhir,有人可以给我解决这个问题,所以没有错误去第2帧没有btsakhir

1 个答案:

答案 0 :(得分:1)

当闪存进入下一帧时,Event.ENTER_FRAME事件处理程序仍在运行。并且它期望有一个名为“btsakhir”的对象具有y属性。你可以通过在changeFrame()方法中添加一个跟踪来测试它,你应该看到它仍在跟踪,即使它在下一帧。

你可以做的两件事:

1。)更改您的事件处理程序(您的changeframe()方法)以检查并说明下一帧“btsakhir”何时不再存在。这可能会有点混乱,不建议取决于您选择的方式。

或者

2。)删除事件监听器,使其在转到下一帧时根本不运行。如果所有的changeframe()方法都检查“btsakhir”的y属性,那么这可能是一个更好的方法。要删除事件侦听器,您可以添加:

this.removeEventListener(Event.ENTER_FRAME, changeframe);

您可以在调用nextFrame();

之前添加它

当然,如果您的对象“btsakhir”应该存在于下一帧(并且是时间轴/舞台上的对象),则只需向其添加帧。