00001 class tweens.robertpenner.easing.Bounce {
00002 static function easeOut (t:Number, b:Number, c:Number, d:Number):Number {
00003 if ((t/=d) < (1/2.75)) {
00004 return c*(7.5625*t*t) + b;
00005 } else if (t < (2/2.75)) {
00006 return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b;
00007 } else if (t < (2.5/2.75)) {
00008 return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b;
00009 } else {
00010 return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b;
00011 }
00012 }
00013 static function easeIn (t:Number, b:Number, c:Number, d:Number):Number {
00014 return c - tweens.robertpenner.easing.Bounce.easeOut (d-t, 0, c, d) + b;
00015 }
00016 static function easeInOut (t:Number, b:Number, c:Number, d:Number):Number {
00017 if (t < d/2) return tweens.robertpenner.easing.Bounce.easeIn (t*2, 0, c, d) * .5 + b;
00018 else return tweens.robertpenner.easing.Bounce.easeOut (t*2-d, 0, c, d) * .5 + c*.5 + b;
00019 }
00020 static function easeOutIn (t:Number, b:Number, c:Number, d:Number):Number {
00021 if (t < d/2) return tweens.robertpenner.easing.Bounce.easeOut (t*2, 0, c, d) * .5 + b;
00022 return tweens.robertpenner.easing.Bounce.easeIn (t*2-d, 0, c, d) * .5 + c*.5 + b;
00023 }
00024
00025
00026 }