Показать сообщение отдельно
Старый 17.05.2008, 22:57
Sway вне форума Посмотреть профиль Отправить личное сообщение для Sway Найти все сообщения от Sway
  № 1  
Ответить с цитированием
Sway

Регистрация: Apr 2004
Адрес: Симферополь
Сообщений: 14
По умолчанию Timer не работает с интервалом менее 1000мс

Ситуация такая: Есть некоторое приложение на AS3 + AIR, выполняющее 2х и 3х-мерные преобразования объекта (для универа делаю).
Задача: Заставить объекты перемещаться плавно.
Проблема: таймер правильно работает только с delay ~1000 и выше. Но мне необходимо delay примерно 10.
Что происходит: delay = 10. объект перемещается рывками с периодом явно не 10мс.

вот код:
Код:
public function animate(args:Array)
{
	// сборка необходимых данных
	...
	// таймер
	timeOut = 10;
	this.animationArgs['stepCount'] = 20;
	this.timer = new Timer(timeOut,this.animationArgs['stepCount']);
	this.timer.addEventListener(TimerEvent.TIMER, this.applyAnimation);
	this.timer.start();
}

// применяет преобразования имитируя анимацию
private function applyAnimation(event:TimerEvent)
{
	// запуск трансформации
	if(this.animationArgs['stepVars'].length != 0)
	this.animationArgs["workSpace"].startTransform(this.animationArgs['stepVars'].shift());
}
this.animationArgs['stepVars'] - массив, состоящий из массивов с данными для преобразования на каждом шаге анимации

PS: если есть другой способ сделать таймер или задержку (типа JavaScript'ового sleep), прошу подсказать.


Последний раз редактировалось Sway; 17.05.2008 в 23:21.