【问题标题】:Time-Scaling Movies in FlashFlash 中的时间缩放电影
【发布时间】:2011-01-07 10:08:15
【问题描述】:

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)); 
}

【问题讨论】:

    标签: flash actionscript-3 animation


    【解决方案1】:

    如果没有像grapefrukt 给你的hack,我认为你所描述的在AS3 中是不可能的。有一个third-party app 可以为您观看的 Flash 视频执行此操作,但您需要为特权付费。

    【讨论】:

    • 当我附加脚本并运行它时,我得到一个错误??? 1151: 与命名空间内部的定义_clip存在冲突。
    • 现在没有错误,但什么也没做?查看有问题的更新。
    【解决方案2】:

    相当简单,这段代码将以四分之一的速度播放影片剪辑:

    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 帧动画将有效地达到 1fps。如果加快,它也会跳帧,但我猜这不是一个问题。

    【讨论】:

    • 这就是我想要的。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多