Фильмы с масштабированием времени во Flash - PullRequest
1 голос
/ 20 января 2010

Время масштабирования фильмов в After Effects легко, но как я бы сделал это во Flash? Уравнения или ActionScript приветствуются.

Пример

60 секунд моего фильма. Я хочу воспроизвести весь фильм за 30 секунд. Я хочу воспроизвести весь фильм за 120 секунд. Как мне изменить масштаб моего фильма с помощью ActionScript 3.0. Возможно, все мои фильмы будут одинаковой длины и частоты кадров, если это будет иметь значение.

Пример

Прелоадеры имеют элементы, на которые влияют процент и масштаб. Я хочу сделать это с видеоклипами, но у меня есть определенная сумма.

ех.

progressbar_mc.scaleX = загружено / всего;

//Grapefruits example revised
//No errors at runtime, nothing happens?
//instance of "dude"
var _time_scale:Number = .25; 
var _frames_elapsed:int = 0; 
var dude:MovieClip; 

function handleEnterFrame(e:Event):void { 
_frames_elapsed++; 
dude.gotoAndStop(Math.round(dude.totalFrames 1 _frames_elapsed 2 _time_scale)); 
}

Ответы [ 2 ]

2 голосов
/ 20 января 2010

Это довольно просто, этот фрагмент кода будет воспроизводить мувиклип с четверть скорости:

package {
    import flash.display.MovieClip;
    import flash.display.Sprite;
    import flash.events.Event;

    public class Main extends Sprite {

        private var _time_scale:Number = .25;
        private var _frames_elapsed:int = 0;
        private var _clip:MovieClip;

        public function Main():void {
            _clip = new SomeClip;
            addEventListener(Event.ENTER_FRAME, handleEnterFrame);
        }

        private function handleEnterFrame(e:Event):void {
            _frames_elapsed++;
            // we multiply the "real" time with our timescale to get the scaled time
            // we also need to make sure we give an integer as a parameter, so we use Math.round() to round the value off
            _clip.gotoAndStop(Math.round(_clip.totalFrames * _frames_elapsed * _time_scale));
        }

    }

}

У этого метода есть одно важное предостережение: интерполяция между кадрами не будет. Это означает, что 10 кадров анимации, растянутых в течение 10 секунд, будут эффективно 1 кадр / с. Он также пропустит кадры, если ускорится, но это не проблема, я думаю.

0 голосов
/ 20 января 2010

Я не думаю, что то, что вы описываете, возможно в AS3 без взлома, как вам дал грейпфрукт. Существует стороннее приложение , которое сделает это для видео Flash, которое вы смотрите, но вы заплатите за эту привилегию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...