2013-05-01 27 views
0

好的,我对帧1除去的movieclip执行之后

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

什么是发生的是,当闪光进入下一帧,Event.ENTER_FRAME事件处理程序仍在运行。它预计有一个名为“btsakhir”的物品属于y物业。你可以通过在你的changeFrame()方法中添加一个跟踪来测试它,并且你应该看到它仍然在跟踪,即使它在下一帧。

两件事情你可以做:

1)改变你的事件处理程序(您changeframe()方法)检查​​和账户时“btsakhir”在下一帧不复存在。这可能会有点混乱,不建议取决于你如何选择做到这一点。

或者

2),所以,当你去到下一帧没有运行在所有移除事件侦听器。如果所有的changeframe()方法都是检查“btsakhir”的y属性,那么这可能是更好的方法。要删除事件监听器,您可以添加:

this.removeEventListener(Event.ENTER_FRAME, changeframe); 

您将在您调用nextFrame()之前添加它;


当然如果对象“btsakhir”是应该下一个帧上存在的,(并且在时间轴/阶段的对象),只是添加帧到它。

+0

它的工作,但removeEventListener应该放在下一帧顺便说一句btw谢谢 – 2013-05-01 15:12:19