AS3でタイマーを使ったとき、処理が重いとズレる場合がある、というのは時々言われているみたいです。しかし、全然重くない処理でももともとズレるようになっているようです。
回数をTimerで設定することができるんですが、これが回数が増えると、大きくズレる。
今までずっと、
var timer1:Timer = new Timer(1000, 1);
と
var timer2:Timer = new Timer(50, 20);
は同じ時間にTIMER_COMPLETEを吐くとばかり思っていたんですが、
実はやってみると、0.5秒くらいtimer2の方が遅い。1秒で0.5秒ずれる、っていうのは相当な誤差です。誤差と言える範囲ではないです。
タイマーをフレーム間隔に近づけると、誤差は少なくなっていく気がしますが、絶対そう!というわけでもないみたいです。あと、回数を増やせば増やすほどずれる、というわけでもない。
0.05秒というのが、30fpsで1フレームあたりの秒数(≒0.033)にちょうど合いにくいのかもしれません。時間ごとに処理したい場合は、Timerを使うよりも、ENTER_FRAMEでgetTimerした方がよいのかもしれません。