Flash CS4,跟随鼠标的帧头位置

时间:2009-11-18 14:06:09

标签: actionscript-3

我有一个小脚本可以根据我的mouseX坐标在主Flash影片中的位置向后和向前移动帧头。这是我的代码,它到目前为止工作:

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

但是,当mouseX光标离开Flash窗口x = 0,电影的左边缘,并且鼠标重新进入Flash.stageWidth(电影右边缘)的Flash窗口时,整个电影会跳跃/加速到最后一个框架。

现在这是想要的东西,但我想要软化从前移动的效果。第0帧到第30帧。

因此,不应弹出到30,而是应该平稳过渡。任何人都可以建议如何操纵上述功能来实现这种行为!

提前致谢!

2 个答案:

答案 0 :(得分: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);
}

或者您甚至可以使用补间引擎进行更顺畅的过渡......

答案 1 :(得分: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));
}

呼!!!