Показать сообщение отдельно
Старый 21.09.2013, 21:52
MikroAcse вне форума Посмотреть профиль Отправить личное сообщение для MikroAcse Найти все сообщения от MikroAcse
  № 10  
Ответить с цитированием
MikroAcse
 
Аватар для MikroAcse

Регистрация: Feb 2012
Сообщений: 1,540
Вот тут провел совсем странный тест:
Код 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).


Последний раз редактировалось MikroAcse; 22.09.2013 в 15:51.