Elastic.as

Go to the documentation of this file.
00001 class tweens.robertpenner.easing.Elastic {
00002         static function easeIn (t:Number, b:Number, c:Number, d:Number, a:Number, p:Number):Number {
00003                 if (t==0) return b;  if ((t/=d)==1) return b+c;  if (!p) p=d*.3;
00004                 if (!a || a < Math.abs(c)) { a=c; var s=p/4; }
00005                 else var s = p/(2*Math.PI) * Math.asin (c/a);
00006                 return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
00007         }
00008         static function easeOut (t:Number, b:Number, c:Number, d:Number, a:Number, p:Number):Number {
00009                 if (t==0) return b;  if ((t/=d)==1) return b+c;  if (!p) p=d*.3;
00010                 if (!a || a < Math.abs(c)) { a=c; var s=p/4; }
00011                 else var s = p/(2*Math.PI) * Math.asin (c/a);
00012                 return (a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b);
00013         }
00014         static function easeInOut (t:Number, b:Number, c:Number, d:Number, a:Number, p:Number):Number {
00015                 if (t==0) return b;  if ((t/=d/2)==2) return b+c;  if (!p) p=d*(.3*1.5);
00016                 if (!a || a < Math.abs(c)) { a=c; var s=p/4; }
00017                 else var s = p/(2*Math.PI) * Math.asin (c/a);
00018                 if (t < 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
00019                 return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b;
00020         }
00021         static function easeOutIn (t:Number, b:Number, c:Number, d:Number, a:Number, p:Number):Number {
00022                 if (t==0) return b;  if ((t/=d/2)==2) return b+c;  if (!p) p=d*(.3*1.5);
00023                 if (!a ||a < Math.abs(c)) {a=c; var s=p/4;}
00024                 else var s = p/(2*Math.PI) * Math.asin (c/a);
00025                 if (t < 1) return .5*(a*Math.pow(2,-10*t) * Math.sin((t*d-s)*(2*Math.PI)/p))+c/2+b;
00026                 return c/2 +.5*(a*Math.pow(2,10*(t-2)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
00027 
00028         }
00029 }
00030 

Generated on Fri May 11 17:12:42 2007 for GuggaFramework by  doxygen 1.5.2