Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Как изменить скорость анимации объекта? (http://www.flasher.ru/forum/showthread.php?t=208456)

ivaniyses 15.07.2014 15:22

Как изменить скорость анимации объекта?
 
Есть MovieClip, скорость которого нужно программно изменить.
Изначально анимация очень медленная, но в некоторых моментах её нужно будет быстро проигрывать.
Свойство frameRate пробовал

Ёлочка 15.07.2014 15:54

Вот так можно:
Код AS3:

import flash.display.MovieClip;
import flash.utils.Timer;
import flash.events.TimerEvent;
 
var mc:MovieClip;
mc.stop();
var timer:Timer = new Timer( 1000 );
timer.addEventListener( TimerEvent.TIMER, changeFrame );
timer.start();
 
function changeFrame( e:TimerEvent ):void
{
        if ( mc.currentFrame != mc.totalFrames )
                mc.nextFrame();
        else
                mc.gotoAndStop( 1 );
}


ivaniyses 15.07.2014 17:00

Цитата:

Сообщение от Ёлочка (Сообщение 1169159)
Вот так можно

Я так пробовал, не получается.
Дело в том, что таким способом анимация слишком медленная.
P/s: У меня объект "колесо", каждые 100 кадров колесо поворачивается на 1/4 круга. То есть весь круг проходит за 400 кадров.
Спросите, зачем так много? - Для того, чтобы при торможении машины, или при разгоне, анимация была плавной и не дёрганой.

В принципе, я знаю как можно ещё реализовать подобную вещь, просто хочу узнать, можно ли анимацией так сделать?

FlasherEgor 15.07.2014 17:05

Можно условно разделить круг поворота на отдельные сегменты и для каждого нарисовать свой кадр.
Мы делим круг, предположим, на 360 частей (по 1 градусу на каждую, итого у нас 360 кадров, это почти 400), проверяем, на сколько градусов повернуто колесо и подставляем соответствующий кадр.
Конечно, если это настолько необходимо, что нельзя просто поворачивать через rotation.

ivaniyses 15.07.2014 17:14

Цитата:

Сообщение от FlasherEgor (Сообщение 1169162)
Можно условно разделить круг поворота на отдельные сегменты и для каждого нарисовать свой кадр.
Мы делим круг, предположим, на 360 частей (по 1 градусу на каждую, итого у нас 360 кадров, это почти 400), проверяем, на сколько градусов повернуто колесо и подставляем соответствующий кадр.
Конечно, если это настолько необходимо, что нельзя просто поворачивать через rotation.

Через rotation все работает как надо.
Просто думал, что можно анимацией сделать.

Ну ладно, иду дальше

ivaniyses 15.07.2014 17:30

Вложений: 1
Цитата:

Сообщение от FlasherEgor (Сообщение 1169162)
Если это настолько необходимо, что нельзя просто поворачивать через rotation.

Результат через rotation, думаю норм.


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

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