Timerのdelayはどこまで正確か?細かく設定できるか?

by kjkmr
30分の1秒が限界みたい。
Flash Player 10.1以降でそうなった?

♥0 | Line 34 | Modified 2010-08-21 22:01:05 | MIT License
play

ActionScript3 source code

/**
 * Copyright kjkmr ( http://wonderfl.net/user/kjkmr )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/jPGv
 */

/*

30分の1秒が限界みたい。
Flash Player 10.1以降でそうなった?

*/
package {
    import flash.display.Sprite;
    import flash.utils.Timer;
    import flash.events.TimerEvent;
    import flash.text.TextField;
    import flash.utils.getTimer;
    public class FlashTest extends Sprite {
        
        private var _text:TextField = new TextField();
        private var _delay:uint = 1000;
        private var _timer:Timer = new Timer( _delay );
        private var _lastTime:Number;
        
        public function FlashTest() {
            //
            stage.frameRate = 60;
            
            //
            _text.width = stage.stageHeight;
            _text.height = stage.stageHeight;
            addChild( _text );
            
            //
            _timer.addEventListener( TimerEvent.TIMER, _onTimer );
            
            //
            _lastTime = getTimer();
            _timer.start();
        }
        
        private function _onTimer( i_event:TimerEvent ):void {
            _text.text = _text.text + "delay : " + String(_delay) + " time : " + String( getTimer() - _lastTime ) + "\n";
            _delay -= _delay > 200 ? 100 : _delay > 10 ? 10 : 1;
            if ( _delay < 1 ) {
                _timer.removeEventListener( TimerEvent.TIMER, _onTimer );
                return;
            }
            _timer.reset();
            _timer.delay = _delay;
            _lastTime = getTimer();
            _timer.start();
        }

    }
}