Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   независимая анимация movieclip (http://www.flasher.ru/forum/showthread.php?t=147435)

DenverZ 04.12.2010 13:48

независимая анимация movieclip
 
Здравствуйте,
есть movieclip созданный во Flash IDE (анимация на 10 кадров, идущий человек),
swc добавлен во FlashDevelop

Код AS3:

mc = new MyMan_mc();
mc.x = 100;
mc.y = 100;
 
addChild(mc);

все ок, человек появляется и идет, но идет очень быстро, т.к. в настройках стоит frameRate = 30 кадров
но я хочу что бы отдельно взятый мувик, независимо от всей сцены проигрывался со своей скоростью (для данного мувика (спрайта так сказать) скорость нужна 12 кадров в секунду)

подскажите как быть?

P.S. например у данного мувика скорость нужна 12 кадров, у другого мувика нужно 3 кадра в секунду и т.д.
скорость общей сцены одна (например 30 кадров)
более того, у каждого мувика, свое кол-во кадров на timeline во Flash IDE

заранее спасибо

medvedya2 04.12.2010 14:06

как-то так.
Код AS3:

  mc.stop();
  mc.addEventListener(Event.ENTER_FRAME,onFrame);
}
private function onFrame(e:Event):void
{
  t++;
  if(t%3!=0)return void;
  if(mc.currentFrame==mc.totalFrames)
    mc.gotoAndStop(1);
  mc.nextFrame();
}


DenverZ 04.12.2010 14:13

хмм интересный вариант, спасибо
но не будет ли накладным такой вариант в плане тормозов, если объектов будет например 40-50 и более?

P.S. t % 3 это не три кадра в секунду... тут как-то иначе надо

Psycho Tiger 04.12.2010 14:21

Я бы отнаследовался от MovieClip и создал класс, который бы содержал свойство frameRate. А фреймрейт регулировал бы как medvedya2 сказал.

P.S. это не 3 кадра в секунду, а в 3 раза медленнее чем текущий фпс.

DenverZ 04.12.2010 14:26

Цитата:

Сообщение от Psycho Tiger (Сообщение 954881)
Я бы отнаследовался от MovieClip и создал класс, который бы содержал свойство frameRate. А фреймрейт регулировал бы как medvedya2 сказал.

P.S. это не 3 кадра в секунду, а в 3 раза медленнее чем текущий фпс.

т.е. в новом классе так же управлять ENTER_FRAME и в нем уже gotoAndStop(1); NextFrame ?

вопрос остается открытым - как такой способ повлияет на производительность при множестве объектов... есть ли другие способы?

medvedya2 04.12.2010 14:28

Цитата:

Сообщение от DenverZ (Сообщение 954878)
хмм интересный вариант, спасибо
но не будет ли накладным такой вариант в плане тормозов, если объектов будет например 40-50 и более?

P.S. t % 3 это не три кадра в секунду... тут как-то иначе надо

t % 3 будет 10 кадров в секунду, для большей точности сложный алгоритм придётся сочинять, но это возможно.
тормозить не будет (даже меньше ресурсы кушать чем 30 кадров/сек). только слушатель вешайте один на stage и пусть он обрабатывает все мувики.

DenverZ 04.12.2010 14:30

оки попробую, спасибо

medvedya2 04.12.2010 14:33

Psycho Tiger дело говорит лучше класс сделай, тогда можно будет реализовать play() и stop() без костылей.

DenverZ 04.12.2010 14:36

а ENTER_FRAME уже в классе для каждого мувика?
или в главном классе один ENTER_FRAME как Вы написали Выше?

medvedya2 04.12.2010 14:42

как вам больше нравиться, особо это не нашто не влияет, если слушатель в классе- когда будете мувик удалять отписывайте слушатель.
можно еще через таймер кадры переключать в теории это точнее, но на практике также.


Часовой пояс GMT +4, время: 18:02.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.