PDA

Просмотр полной версии : маленький таймер


XMON
13.01.2013, 14:56
ЗДравствуйте!
в AS 3.0 очень неудобно делать таймер типа такого:


var tim:Timer = new Timer (1000,1)

tim.addEventListener(TimerEvent.TIMER_COMPLETE, ACTIVE_BOT)
tim.start()

function ACTIVE_BOT (e:TimerEvent):void
{
trace ("работает")
}

для какогонибуть незначительного действия. в QB можно остановить выполнение кода написав всего одно слово и время остановки. меня интересует, можно-ли сделать тоже самое в AS 3.0?

am_devcorp
13.01.2013, 15:27
Кстати то что вы предложили и sleep- это принципиально разные вещи.

expl
13.01.2013, 15:31
private var _stopTime:Number = NaN;
...
function ACTIVE_BOT (e:TimerEvent):void
{
if (!isNaN(_stopTime) && new Data().time > _stopTime)) {
tim.stop();
}
trace ("работает")
}
...
public function stop(stopTime:Number):void {
_stopTime = stopTime;
}

или

// Но тут при изменении stopTime надо будет остановить предыдущий timeout
setTimeout(stopTime - new Data().time, tim.stop);

caseyryan
13.01.2013, 18:37
Можно написать свой класс, который вызовом одной функци будет делать всю эту работу. И использовать его когда нужно.