class myMove{
/*
t:time;//运动时间
b:begin;//起始运动地点
c:change;//运动d时间改变的距离
d:duration;//持续的时间
*/
/*匀速直线运动*/
static function linearTween(t:Number,b:Number,c:Number,d:Number):Number{
return c*t/d + b;
}
/*二次缓入运动,加速*/
static function easeInQuad(t:Number,b:Number,c:Number,d:Number):Number{
return c*(t/=d)*t + b;
}
/*二次缓出运动,减速*/
static function easeOutQuad(t:Number,b:Number,c:Number,d:Number):Number{
return -c *(t/=d)*(t-2) + b;
}
/*二次缓入--缓出运动*/
static function easeInOutQuad(t:Number,b:Number,c:Number,d:Number):Number{
if ((t/=d/2) < 1) return c/2*t*t + b;
return -c/2 * ((--t)*(t-2) - 1) + b;
}
/*三次缓动函数*/
static function easeInCubic(t:Number,b:Number,c:Number,d:Number):Number{
return c*(t/=d)*t*t + b;
}
static function easeOutCubic(t:Number,b:Number,c:Number,d:Number):Number{
return c*((t=t/d-1)*t*t + 1) + b;
}
static function easeInOutCubic(t:Number,b:Number,c:Number,d:Number):Number{
if ((t/=d/2) < 1) return c/2*t*t*t + b;
return c/2*((t-=2)*t*t + 2) + b;
}
/*四次缓动函数*/
static function easeInQuart(t:Number,b:Number,c:Number,d:Number):Number{
return c*(t/=d)*t*t*t + b;
}
static function easeOutQuart(t:Number,b:Number,c:Number,d:Number):Number{
return -c * ((t=t/d-1)*t*t*t - 1) + b;
}
static function easeInOutQuart(t:Number,b:Number,c:Number,d:Number):Number{
if ((t/=d/2) < 1) return c/2*t*t*t*t + b;
return -c/2 * ((t-=2)*t*t*t - 2) + b;
}
/*五次缓动函数*/
static function easeInQuint(t:Number,b:Number,c:Number,d:Number):Number{
return c*(t/=d)*t*t*t*t + b;
}
static function easeOutQuint(t:Number,b:Number,c:Number,d:Number):Number{
return c*((t=t/d-1)*t*t*t*t + 1) + b;
}
static function easeInOutQuint(t:Number,b:Number,c:Number,d:Number):Number{
if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b;
return c/2*((t-=2)*t*t*t*t + 2) + b;
}
/*正弦缓动函数*/
static function easeInSine(t:Number,b:Number,c:Number,d:Number):Number{
return -c * Math.cos(t/d * (Math.PI/2)) + c + b;
}
static function easeOutSine(t:Number,b:Number,c:Number,d:Number):Number{
return c * Math.sin(t/d * (Math.PI/2)) + b;
}
static function easeInOutSine(t:Number,b:Number,c:Number,d:Number):Number{
return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b;
}
/*指数缓动函数*/
static function easeInExpo(t:Number,b:Number,c:Number,d:Number):Number{
return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b;
}
static function easeOutExpo(t:Number,b:Number,c:Number,d:Number):Number{
return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b;
}
static function easeInOutExpo(t:Number,b:Number,c:Number,d:Number):Number{
if (t==0) return b;
if (t==d) return b+c;
if ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b;
return c/2 * (-Math.pow(2, -10 * --t) + 2) + b;
}
/*弧形缓动函数*/
static function easeInCirc(t:Number,b:Number,c:Number,d:Number):Number{
return -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b;
}
static function easeOutCirc(t:Number,b:Number,c:Number,d:Number):Number{
return c * Math.sqrt(1 - (t=t/d-1)*t) + b;
}
static function easeInOutCirc(t:Number,b:Number,c:Number,d:Number):Number{
if ((t/=d/2) < 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b;
return c/2 * (Math.sqrt(1 - (t-=2)*t) + 1) + b;
}
}









