Options
All
  • Public
  • Public/Protected
  • All
Menu

Standard easing functions for motion in Excalibur, defined on a domain of [0, duration] and a range from [+startValue,+endValue] Given a time, the function will return a value from positive startValue to positive endValue.

function Linear (t) {
   return t * t;
}

// accelerating from zero velocity
function EaseInQuad (t) {
   return t * t;
}

// decelerating to zero velocity
function EaseOutQuad (t) {
   return t * (2 - t);
}

// acceleration until halfway, then deceleration
function EaseInOutQuad (t) {
   return t < .5 ? 2 * t * t : -1 + (4 - 2 * t) * t;
}

// accelerating from zero velocity
function EaseInCubic (t) {
   return t * t * t;
}

// decelerating to zero velocity
function EaseOutCubic (t) {
   return (--t) * t * t + 1;
}

// acceleration until halfway, then deceleration
function EaseInOutCubic (t) {
   return t < .5 ? 4 * t * t * t : (t - 1) * (2 * t - 2) * (2 * t - 2) + 1;
}

Hierarchy

  • EasingFunctions

Index

Properties

Static EaseInCubic

EaseInCubic: EasingFunction = EasingFunctions.CreateReversibleEasingFunction((currentTime: number, startValue: number, endValue: number, duration: number) => {endValue = endValue - startValue;currentTime /= duration;return endValue * currentTime * currentTime * currentTime + startValue;})

Static EaseInOutCubic

EaseInOutCubic: EasingFunction = EasingFunctions.CreateReversibleEasingFunction((currentTime: number, startValue: number, endValue: number, duration: number) => {endValue = endValue - startValue;currentTime /= duration / 2;if (currentTime < 1) {return (endValue / 2) * currentTime * currentTime * currentTime + startValue;}currentTime -= 2;return (endValue / 2) * (currentTime * currentTime * currentTime + 2) + startValue;})

Static EaseInOutQuad

EaseInOutQuad: EasingFunction = EasingFunctions.CreateReversibleEasingFunction((currentTime: number, startValue: number, endValue: number, duration: number) => {endValue = endValue - startValue;currentTime /= duration / 2;if (currentTime < 1) {return (endValue / 2) * currentTime * currentTime + startValue;}currentTime--;return (-endValue / 2) * (currentTime * (currentTime - 2) - 1) + startValue;})

Static EaseInQuad

EaseInQuad: (Anonymous function) = EasingFunctions.CreateReversibleEasingFunction((currentTime: number, startValue: number, endValue: number, duration: number) => {endValue = endValue - startValue;currentTime /= duration;return endValue * currentTime * currentTime + startValue;})

Static EaseOutCubic

EaseOutCubic: EasingFunction = EasingFunctions.CreateReversibleEasingFunction((currentTime: number, startValue: number, endValue: number, duration: number) => {endValue = endValue - startValue;currentTime /= duration;currentTime--;return endValue * (currentTime * currentTime * currentTime + 1) + startValue;})

Static EaseOutQuad

EaseOutQuad: EasingFunction = EasingFunctions.CreateReversibleEasingFunction((currentTime: number, startValue: number, endValue: number, duration: number) => {endValue = endValue - startValue;currentTime /= duration;return -endValue * currentTime * (currentTime - 2) + startValue;})

Static Linear

Linear: EasingFunction = EasingFunctions.CreateReversibleEasingFunction((currentTime: number, startValue: number, endValue: number, duration: number) => {endValue = endValue - startValue;return (endValue * currentTime) / duration + startValue;})

Methods

Static CreateReversableEasingFunction

  • CreateReversableEasingFunction(easing: EasingFunction): (Anonymous function)

Static CreateReversibleEasingFunction

  • CreateReversibleEasingFunction(easing: EasingFunction): (Anonymous function)

Static CreateVectorEasingFunction

  • CreateVectorEasingFunction(easing: EasingFunction): (Anonymous function)