topical media & game development

talk show tell print

lib-flex-animation-code-10-org-as3lib-kitchensync-easing-Circular.ax

lib-flex-animation-code-10-org-as3lib-kitchensync-easing-Circular.ax (swf ) [ flash ] flex


  package org.as3lib.kitchensync.easing
  {
          
<p>@ax-lib-flex-animation-code-10-org-as3lib-kitchensync-easing-Circular produces values that would cause a moving subject to travel along a circular curve.</p> <p>The easing classes provide static methods for interpolating the change between two values over time. Each class handles the interpolation, or easing, differently. Each class typically contains three methods - <code>easeIn()</code>, <code>easeOut()</code> and <code>easeInOut()</code> - which vary the rate of change of the values. Most of the easing functions produce values as a percentage - a number between 0.0 and 1.0</p>
author: modified by Mims H. Wright, 2007
author: (c) 2003 Robert Penner, all rights reserved. - This work is subject to the terms in www.robertpenner.com/easing_terms_of_use.html
see: www.robertpenner.com/easing_terms_of_use.html
see: www.robertpenner.com/easing/
see: EasingUtil

  
          public class @ax-lib-flex-animation-code-10-org-as3lib-kitchensync-easing-Circular
          {
              
easeIn starts out slow and increases in speed towards the end of the duration.
parameter: timeElapsed The time since the tween began in milliseconds or frames.
parameter: duration The duration of the tween, in milliseconds or frames.
returns: percentage complete - between 0.0 and 1.0

   
                  public static function easeIn(timeElapsed:Number, duration:Number):Number
                  {
                          return -1 * (Math.sqrt(1 - (timeElapsed/=duration)*timeElapsed) - 1);
                  }
                                  
              
easeOut starts out fast and decreases in speed towards the end of the duration.
parameter: timeElapsed Specifies the time since the tween began in milliseconds or frames.
parameter: duration Specifies the duration of the tween, in milliseconds or frames.
returns: percentage complete - between 0.0 and 1.0

    
                  public static function easeOut(timeElapsed:Number, duration:Number):Number
                  {
                          return Math.sqrt(1 - (timeElapsed=timeElapsed/duration-1)*timeElapsed);
                  }
          
              
easeInOut combines the motion of easeIn and easeOut by starting out slow and increasing in speed towards the middle of the duration, then slowing down again towards the end.
parameter: timeElapsed Specifies the time since the tween began in milliseconds or frames.
parameter: duration Specifies the duration of the tween, in milliseconds or frames.
parameter: overshoot The ammount to go over past the target value. The higher the number, the farther it will go.
returns: percentage complete - between 0.0 and 1.0

     
                  public static function easeInOut(timeElapsed:Number, duration:Number):Number
                  {
                          if ((timeElapsed/=duration/2) < 1) {
                                  return -0.5 * (Math.sqrt(1 - timeElapsed*timeElapsed) - 1);
                          } 
                          return 0.5 * (Math.sqrt(1 - (timeElapsed-=2)*timeElapsed) + 1);
                  }
          
                  
easeOutIn combines the motion of easeIn and easeOut by starting out decelerating towards the middle of the duration, then accelerating end.
parameter: timeElapsed Specifies the time since the tween began in milliseconds or frames.
parameter: duration Specifies the duration of the tween, in milliseconds or frames.
parameter: overshoot The ammount to go over past the target value. The higher the number, the farther it will go.
returns: percentage complete - between 0.0 and 1.0

   
                  public static function easeOutIn (timeElapsed:Number, duration:Number):Number {
                          if (timeElapsed < duration/2) return easeOut(timeElapsed*2, duration)/2;
                          return easeIn((timeElapsed*2)-duration, duration)/2 + 0.5;
                  }
          }
  }


(C) Æliens 19/08/2009

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.