Вот тут провел совсем странный тест:

Код AS3:
package
{
import flash.display.*;
import flash.text.*;
import flash.utils.*;
public class Main extends Sprite
{
private var startTime:int;
public function Main():void
{
if(stage) {
init();
} else {
addEventListener(Event.ADDED_TO_STAGE, init);
}
}
private function init(e:Event = null):void
{
stage.align = StageAlign.TOP_LEFT;
stage.scaleMode = StageScaleMode.NO_SCALE;
removeEventListener(Event.ADDED_TO_STAGE, init);
// entry point
setTimeout(start, 2000);
}
public function start():void
{
var timer:Timer = new Timer(1, 1000);
timer.addEventListener(TimerEvent.TIMER_COMPLETE, onComplete);
timer.start();
startTime = getTimer();
}
private function onComplete(e:TimerEvent):void
{
var delay:int = getTimer() - startTime;
var tf:TextField = new TextField();
tf.text = "delay: " + delay + "ms";
addChild(tf);
}
}
}
В итоге, при Timer(1, 1000):
delay:
17130ms
Результат при Timer(10, 100):
delay:
1740ms
Результат при Timer(20, 50):
delay:
1040ms
Результат при Timer(100, 10):
delay:
1165ms
Насколько я понял, идеальным вариантом таймера есть Timer(20, 50).