算法是个很有意思的东西,今天运用FLASH中的缓冲常用的计算方法做了个很常见的缓冲移动效果。
具体公式:mc._x += (目标位置-mc._x)*缓冲系数
公式中的缓冲系数就是每次循环靠近给定值或鼠标的系数,而达到缓冲的效果。不同的缓冲系数可以得到不同的运动效果,大家可以自己改动一下这个系数试试运动效果。当然,缓冲系数的值必须小于1,这点很容易在数学上做出解释。
var xPos:Number;
var PLPercentage:Number;
var dist1:Number;
var dist2:Number;
stage.addEventListener(Event.ENTER_FRAME,loop);
function loop(event:Event) {
if (mouseY>0&&mouseY<stage.height&&mouseX>0&&mouseX<stage.width) {
xPos=mouseX;
}
PLPercentage=xPos/stage.stageWidth;
dist1 = ((-ren.width + stage.stageWidth) * PLPercentage) - ren.x;
ren.x+=dist1/4;
if (ren.x>-1) {
ren.x=0;
} else if (ren.x < (stage.stageWidth - ren.width + 1)) {
ren.x=stage.stageWidth-ren.width;
}
dist2 = ((-bg.width + stage.stageWidth) * PLPercentage) - bg.x;
bg.x+=dist2/10;
if (bg.x>-1) {
bg.x=0;
} else if (bg.x < (stage.stageWidth - bg.width + 1)) {
bg.x=stage.stageWidth-bg.width;
}
}
