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

Регистрация: Feb 2011
Сообщений: 121
Спасибо.
Я в начале сделал по примеру Мука диспетчер.... сделал интерфейс... но... чет запутался во всех этих ограничениях с объвлением переменных, с доступом... и в конце-концов плюнул... оказЦа зря плюнул

Добавлено через 1 час 51 минуту
Я тут поэкспериментировал с анимацией...
В общем при использование Таймера анимация более 'рваная', не не равномерная, а именно 'рваная', НЕ ВСЕГДА, но все же слишком часто, а при использовании различных значений frameRate и скорости самой анимации ... анимация плавнее или если и скачками, то... мммм.. равномерными скачками

Вот кусок кода который разместил в enterFrameListener(frameRate = 30) и в timerListener(таймер на 40 миллисекунд):

Код AS3:
now = getTimer();
dt = now - lastFrame;
lastFrame = now;
/*Скорость самой анимации = 30*/
animation.update(dt);
Код animation.update(dt):
Код AS3:
 
spr.addChild(frame[curFrame]);
 
deltaFrame += (dt/1000)*_fps; // _fps - скорость воспроизведения самой анимации
 
curFrame += dFrame;
Попытался разобраться в чем тут дело.. и вышла следующая ситуация:
При использовании таймера, событие происходит не точно через каждые 40 миллисекунд... я трейсом вывел значения... там встречаются и 40 миллисекунд и 69 миллисекунд... с учетом кода производим расчеты... когда у нас 40 миллисекунд... все ок... т.к. 0.04*_fps(самой анимации = 30) = 1.2.. т.е. приращение идет на 1 кадр... и все хорошо, НО, когда deltaTime = 66 миллисекундам, тогда 0.069*30 = 2.07, т.е. приращение идет уже на два кадра, а в какой-то момент даже встретилось значение в 6 кадров.
При использовании ENTER_FRAME среднее deltaTime = 0.35.. в результате очередных расчетов... получаем 0.033*30 = 0.99, т.е., приращение идет все время на один кадр.

В общем... к чему это я все... сижу тут и думаю, какой вариант все же предпочтительнее? И почему у меня с вариантом таймера получается такая фигня?

Попробую сейчас сделать 20 анимаций одновременно...и гляну на результаты