我正在尝试创建一个简单的计时器,该计时器在一段不活动时间(60秒)后将用户带回登录屏幕。计时器似乎第一次正常工作,它将用户导航回登录屏幕。但是,当我第二次重新登录到应用程序时,计时器不起作用,并且用户在60秒后没有导航到登录屏幕。我错过了什么,为什么第二次不起作用?计时器不能正常工作 - as3
private var timer:Timer;
override protected function initialize():void
{
timer = new Timer((1)*60*1000, 1);
timer.start();
timer.addEventListener(MouseEvent.MOUSE_MOVE, onMouseMove);
timer.addEventListener(TimerEvent.TIMER_COMPLETE, onTimerComplete);
}
private function onMouseMove(event:MouseEvent):void
{
timer.removeEventListener(MouseEvent.MOUSE_MOVE, onMouseMove);
timer.reset();
timer.start();
}
private function onTimerComplete(event:TimerEvent):void
{
timer.removeEventListener(TimerEvent.TIMER_COMPLETE, onTimerComplete);
this.owner.showScreen(LOGIN_SCREEN);
timer.reset();
}
任何帮助,将不胜感激。
谢谢@LDMS的回复。我发现initialize()每次用户登录时都没有被调用。我试图解决这个问题,希望这将解决计时器问题。非常感谢你..! – Sugan88 2014-09-23 10:06:10
我从feathers.controls.screen重写Initialize()方法。出于某种原因,当我第二次登录时,不会调用initialize()方法。任何想法为什么? – Sugan88 2014-09-23 14:00:24
你必须发布你的代码。现在我不知道如何以及何时调用'initialize'方法。我对羽毛库不熟悉,但看看我看到的这个文档“在屏幕首次添加到舞台上时运行一次”。 - 也许你可以使用'Event.ADDED_TO_STAGE'事件来设置你的计时器/监听器而不是initilize方法 – BadFeelingAboutThis 2014-09-23 16:09:05