2009-11-18 6 views
1

내 mouseX 좌표가 기본 플래시 동영상 안에있는 위치에 따라 프레임 헤드를 앞뒤로 움직이는 작은 스크립트가 있습니다. 여기에 내 코드 그리고 그것은 지금까지 일하고 :Flash CS4, 마우스 뒤 따르는 프레임 헤드 위치

그러나
function onEnterFrame(event:Event):void 
{ 
    var frame:Number = Math.round(mouseX/(stage.stageWidth/animation.totalFrames)); 
    animation.gotoAndStop(frame); 
} 

의 mouseX 커서가 X = 0에서 플래시 창, 영화의 왼쪽 가장자리를, 잎 마우스가 stage.stageWidth에서 플래시 창을 다시 들어간다 때, 영화의 오른쪽 가장자리, 전체 영화가 마지막 프레임 헤드로 점프/저크.

이제는 원하는 것입니다.하지만 이전의 효과를 부드럽게하고 싶습니다. 프레임 0에서 프레임 30까지.

그래서 30으로 터지는 대신 부드럽게 전환해야합니다. 누구나 이런 종류의 동작을 가능하게하기 위해 위의 함수를 조작하는 방법을 제안 할 수 있습니까?

미리 감사드립니다.

답변

2

당신은 예를 들어, 완화 방정식을 사용할 수 있습니다 ...

var finalFrame:uint=0; 
function onEnterFrame(event:Event):void { 
    var frame:Number = Math.round(mouseX/(stage.stageWidth/animation.totalFrames)); 
    finalFrame+=(frame-finalFrame)*0.2; //simple easing 
    animation.gotoAndStop(finalFrame); 
} 

또는 심지어 부드러운 전환을위한 트위닝 엔진을 사용할 수

+0

답변으로 내 솔루션을 게시했습니다. Cay, 내 게시물이 많이 도움이되었습니다. 감사 –

1

최종 해결책 :

function onEnterFrame(event:Event):void 
{ 
    var frame:Number = mouseX/(stage.stageWidth/animation.totalFrames); 
    var newFrame:Number = animation.currentFrame + ((frame - animation.currentFrame)/3); 
    animation.gotoAndStop(Math.round(newFrame)); 
} 

휴!

관련 문제