API Docs for: 1.4.0
Show:

File: src\animations\tweens\easing\Elastic.ts

/**
*   
* @module Tweens
* @submodule Easing 
* 
*/

module Kiwi.Animations.Tweens.Easing {

	/**
	*
	*
	* @class Elastic
	* @namespace Kiwi.Animations.Tweens.Easing
	*
	*/
	export class Elastic {

		/**
		* The type of object that this is.
		* @method objType
		* @return {String} "Elastic"
		* @public
		*/
		public objType() {
			return "Elastic";
		}

		/** 
		* 
		* @method In
		* @param k {Any}
		* @return {Number}
		* @static
		* @public
		*/
		public static In(k) {

			var s, a = 0.1, p = 0.4;
			if (k === 0) return 0;
			if (k === 1) return 1;
			if (!a || a < 1) { a = 1; s = p / 4; }
			else s = p * Math.asin(1 / a) / (2 * Math.PI);
			return -(a * Math.pow(2, 10 * (k -= 1)) * Math.sin((k - s) * (2 * Math.PI) / p));

		}

		/** 
		* 
		* @method Out
		* @param {Any} k
		* @static
		* @public
		*/
		public static Out(k) {

			var s, a = 0.1, p = 0.4;
			if (k === 0) return 0;
			if (k === 1) return 1;
			if (!a || a < 1) { a = 1; s = p / 4; }
			else s = p * Math.asin(1 / a) / (2 * Math.PI);
			return (a * Math.pow(2, -10 * k) * Math.sin((k - s) * (2 * Math.PI) / p) + 1);

		}

		/** 
		* 
		* @method InOut
		* @param k {Any}
		* @static
		* @public
		*/
		public static InOut(k) {

			var s, a = 0.1, p = 0.4;
			if (k === 0) return 0;
			if (k === 1) return 1;
			if (!a || a < 1) { a = 1; s = p / 4; }
			else s = p * Math.asin(1 / a) / (2 * Math.PI);
			if ((k *= 2) < 1) return -0.5 * (a * Math.pow(2, 10 * (k -= 1)) * Math.sin((k - s) * (2 * Math.PI) / p));
			return a * Math.pow(2, -10 * (k -= 1)) * Math.sin((k - s) * (2 * Math.PI) / p) * 0.5 + 1;

		}

	}

}