topical media & game development
lib-as-com-asinmotion-easing-Elastic.ax
lib-as-com-asinmotion-easing-Elastic.ax
(swf
)
[ flash
]
flex
package com.asinmotion.easing{
public class @ax-lib-as-com-asinmotion-easing-Elastic {
public static function easeIn (t:Number, b:Number, c:Number, d:Number, a:Number = NaN, p:Number = NaN):Number {
if (t==0)
return b;
if ((t/=d)==1)
return b+c;
if (!p)
p=d*.3;
if (!a || a < Math.abs(c)) {
a=c; var s=p/4;
}else
var s = p/(2*Math.PI) * Math.asin (c/a);
return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
}
public static function easeOut (t:Number, b:Number, c:Number, d:Number, a:Number = NaN, p:Number = NaN):Number {
if (t==0)
return b;
if ((t/=d)==1)
return b+c;
if (!p)
p=d*.3;
if (!a || a < Math.abs(c)) {
a=c; var s=p/4;
}else{
var s = p/(2*Math.PI) * Math.asin (c/a);
}
return (a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b);
}
public static function easeInOut (t:Number, b:Number, c:Number, d:Number, a:Number = NaN, p:Number = NaN):Number {
if (t==0)
return b;
if ((t/=d/2)==2)
return b+c;
if (!p)
p=d*(.3*1.5);
if (!a || a < Math.abs(c)) {
a=c; var s=p/4;
}else{
var s = p/(2*Math.PI) * Math.asin (c/a);
}
if (t < 1)
return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b;
}
}
}
(C) Æliens
20/2/2008
You may not copy or print any of this material without explicit permission of the author or the publisher.
In case of other copyright issues, contact the author.