Для представления проблемы приведу следующий пример:

Код AS3:
import flash.events.TimerEvent;
var mySeconds:int = 0;
var firstTime:Number = 0;
var myDate:Date = new Date();
var myTimer:Timer = new Timer(10, 200);
myTimer.addEventListener(TimerEvent.TIMER, onTimer);
myTimer.addEventListener(TimerEvent.TIMER_COMPLETE, onTimerComplete);
myTimer.start();
trace("Timer Start", myDate.getSeconds());
function onTimer(e:TimerEvent):void
{
myDate = new Date();
mySeconds += 10;
trace(mySeconds);
}
function onTimerComplete(e:TimerEvent):void
{
var curTime:Number = myDate.getSeconds() - firstTime;
trace("Timer Complete", curTime);
}
Пример выше выполняет обычный трейс за отведённое время, т.е. раз в 10 милисекунд, 200 раз. Если посчитать, в секундах, выполнение таймера должно завершиться через 2 сек. Однако это время растягивается до 4 сек, я уже не говорю какая разница во времени будет, если поставить например 2000 раз, раз в милисекунду. Вопрос знатокам: изза чего происходит такой разбег по времени?