我有一个小脚本可以根据我的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,而是应该平稳过渡。任何人都可以建议如何操纵上述功能来实现这种行为!
提前致谢!
答案 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));
}
呼!!!