对于缓冲公式的抽象
对于缓冲公式的原理这里就不再赘述了,翻翻论坛都能找到。
本来是想做成一个类来调用,结构发现整个代码才10行左右
干脆就做成一个函数调用算了……

设数轴上a、b两点间距离为x,我们有:
x=b-a,(a<b)
x=a-b,(a>b)

然后将方向判断封装在函数中:
x=-(a-b),(a>b)
即:
x=b-a,(a>b)

最终函数为:
function go(a:Number, b:Number):Number {
    this.$a = a;
    this.$b = b;
    if (this.$a>this.$b) {
        return this.$a-this.$b;
    } else if (this.$a<this.$b) {
        return this.$a-this.$b;
    } else {
        return 0;
    }
}


ok,下面我们假设有一个my_mc,要使其缓冲移动到(200,300)这个坐标,代码如下:
//函数定义
function go(a:Number, b:Number):Number {
	this.$a = a;
	this.$b = b;
	if (this.$a>this.$b) {
		return this.$a-this.$b;
	} else if (this.$a<this.$b) {
		return this.$a-this.$b;
	} else {
		return 0;
	}
}
//缓动系数
var i = 2;
onMouseDown = function () {
	this.onEnterFrame = function() {
		my_mc._x += go(200, my_mc._x)/i;
		my_mc._y += go(300, my_mc._y)/i;
		if (Math.floor(go(200, my_mc._x)) == 0) {
			delete this.onEnterFrame;
		}
	};
};
[2005-5-19 23:0]

{CommentAuthor} [{CommentTime}]  
{CommentContent}