我在页面上运行了一些计时器,当我在页面运行时,当我离开该页面时,我无法弄清楚如何停止。
调用来自另一个影片剪辑上的按钮,该按钮调用Main.as上的一个函数。
Main.as中的函数执行此操作:
public function goToIntro(){
removeChild(currentScreen);
intro = new Intro();
addChildAt(intro,0);
currentScreen = intro;
}
如果在播放带有计时器的任何场景时单击“简介”按钮,则会收到此错误消息。消息
不会马上出现,就像Intro“场景”正在结束并调用下一个场景一样。
TypeError: Error #1009: Cannot access a property or method of a null object reference.
at MethodInfo-202()
at flash.utils::Timer/_timerDispatch()
at flash.utils::Timer/tick()
我在Intro页面上有这个代码,它应该在删除时清理它。
public function Intro() {
addEventListener(Event.REMOVED_FROM_STAGE, removedHandler);
private function removedHandler(event:Event):void {
}
我无法弄清楚如何从removedHander函数中删除计时器。我尝试删除事件侦听器,但这会导致其他错误消息。如果监听器不为null,我尝试进行测试,然后停止它。这显然从未运行(我使用trace语句来测试它)。我尝试测试计时器是否正在运行然后停止它,但这也没有用。
帮助!
另外,我是动作脚本和编程的完全新手所以可以跟我说话,就像我5岁那样。感谢
答案 0 :(得分:0)
您可以使用Timer.stop()
来停止Timer
。您可以在removedHandler
中拨打此电话,如下所示:
private function removedHandler(event:Event):void {
if (myTimer != null) myTimer.stop();
}
这意味着您必须保留对计时器的引用以便停止它。在这种情况下,引用为myTimer
。