2010-01-20 5 views
1

After Effects에서 타임 스케일링 영화는 간단하지만 플래시에서 을 어떻게 사용합니까? 방정식 또는 actionScript를 주시면 감사하겠습니다.플래시의 타임 스케일링 동영상


내 영화의 60초. 30 초 안에 전체 영화를 재생하고 싶습니다. 120 초 만에 전체 영화를 재생하고 싶습니다. actionscript 3.0을 사용하여 동영상의 크기를 다시 조절하려면 어떻게해야합니까? 차이가 나는 경우 내 영화는 모두 길이와 프레임 속도가 같을 것입니다.


프리 로더는 백분율 스케일 요소에 의해 영향을 갖는다. 이 작업을 무비 클립에 적용하고 싶지만 정의 된 총계가 있습니다.

ex.

progressbar_mc.scaleX = loaded/total;

//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

그것은 매우 간단합니다, 코드의이 비트 분의 속도로 무비 클립을 재생됩니다 :

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가됩니다. 또한 속도가 빨라지면 프레임을 건너 뛸 것입니다.하지만 그건 내가 추측하는 문제가 적습니다.

+0

하나님이 나를 도와 주며, 나는 좋은 FLVPlayback 핵을 사랑합니다. +1 – iandisme

+0

그게 내가 찾고 있던거야. 감사. –

0

grapefrukt와 같은 해킹이 없으면 AS3에서 가능한 것이 무엇인지 설명하지 못했습니다. 보고있는 플래시 동영상에는이 작업을 수행하는 third-party app이 있지만 권한에 대해 지불하게됩니다.

+0

스크립트를 첨부하고 실행하면 오류가 발생합니다. ??? 1151 : _clip 정의가 내부 네임 스페이스에 충돌합니다. –

+0

지금 아무런 오류가 없지만 아무 것도하지 않습니까? 문제의 업데이트를 참조하십시오. –