UNPKG

starling-framework

Version:

A fast, productive library for 2D cross-platform development.

177 lines (160 loc) 5.97 kB
// Class: starling.animation.Transitions var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this $global.Object.defineProperty(exports, "__esModule", {value: true}); var __map_reserved = {}; // Imports var $hxClasses = require("./../../hxClasses_stub").default; var $hxEnums = require("./../../hxEnums_stub").default; var $import = require("./../../import_stub").default; function haxe_ds_StringMap() {return require("./../../haxe/ds/StringMap");} // Constructor var Transitions = function(){} // Meta Transitions.__name__ = "starling.animation.Transitions"; Transitions.__isInterface__ = false; Transitions.prototype = { }; Transitions.prototype.__class__ = Transitions.prototype.constructor = $hxClasses["starling.animation.Transitions"] = Transitions; // Init // Statics Transitions.getTransition = function(name) { if(Transitions.sTransitions == null) { Transitions.registerDefaults(); } return Transitions.sTransitions.get(name); } Transitions.register = function(name,func) { if(Transitions.sTransitions == null) { Transitions.registerDefaults(); } Transitions.sTransitions.set(name,func); } Transitions.registerDefaults = function() { Transitions.sTransitions = new (haxe_ds_StringMap().default)(); Transitions.register("linear",Transitions.linear); Transitions.register("easeIn",Transitions.easeIn); Transitions.register("easeOut",Transitions.easeOut); Transitions.register("easeInOut",Transitions.easeInOut); Transitions.register("easeOutIn",Transitions.easeOutIn); Transitions.register("easeInBack",Transitions.easeInBack); Transitions.register("easeOutBack",Transitions.easeOutBack); Transitions.register("easeInOutBack",Transitions.easeInOutBack); Transitions.register("easeOutInBack",Transitions.easeOutInBack); Transitions.register("easeInElastic",Transitions.easeInElastic); Transitions.register("easeOutElastic",Transitions.easeOutElastic); Transitions.register("easeInOutElastic",Transitions.easeInOutElastic); Transitions.register("easeOutInElastic",Transitions.easeOutInElastic); Transitions.register("easeInBounce",Transitions.easeInBounce); Transitions.register("easeOutBounce",Transitions.easeOutBounce); Transitions.register("easeInOutBounce",Transitions.easeInOutBounce); Transitions.register("easeOutInBounce",Transitions.easeOutInBounce); } Transitions.linear = function(ratio) { return ratio; } Transitions.easeIn = function(ratio) { return ratio * ratio * ratio; } Transitions.easeOut = function(ratio) { var invRatio = ratio - 1.0; return invRatio * invRatio * invRatio + 1; } Transitions.easeInOut = function(ratio) { return Transitions.easeCombined(Transitions.easeIn,Transitions.easeOut,ratio); } Transitions.easeOutIn = function(ratio) { return Transitions.easeCombined(Transitions.easeOut,Transitions.easeIn,ratio); } Transitions.easeInBack = function(ratio) { var s = 1.70158; return Math.pow(ratio,2) * ((s + 1.0) * ratio - s); } Transitions.easeOutBack = function(ratio) { var invRatio = ratio - 1.0; var s = 1.70158; return Math.pow(invRatio,2) * ((s + 1.0) * invRatio + s) + 1.0; } Transitions.easeInOutBack = function(ratio) { return Transitions.easeCombined(Transitions.easeInBack,Transitions.easeOutBack,ratio); } Transitions.easeOutInBack = function(ratio) { return Transitions.easeCombined(Transitions.easeOutBack,Transitions.easeInBack,ratio); } Transitions.easeInElastic = function(ratio) { if(ratio == 0 || ratio == 1) { return ratio; } else { var p = 0.3; var s = p / 4.0; var invRatio = ratio - 1; return -1.0 * Math.pow(2.0,10.0 * invRatio) * Math.sin((invRatio - s) * (2.0 * Math.PI) / p); } } Transitions.easeOutElastic = function(ratio) { if(ratio == 0 || ratio == 1) { return ratio; } else { var p = 0.3; var s = p / 4.0; return Math.pow(2.0,-10.0 * ratio) * Math.sin((ratio - s) * (2.0 * Math.PI) / p) + 1; } } Transitions.easeInOutElastic = function(ratio) { return Transitions.easeCombined(Transitions.easeInElastic,Transitions.easeOutElastic,ratio); } Transitions.easeOutInElastic = function(ratio) { return Transitions.easeCombined(Transitions.easeOutElastic,Transitions.easeInElastic,ratio); } Transitions.easeInBounce = function(ratio) { return 1.0 - Transitions.easeOutBounce(1.0 - ratio); } Transitions.easeOutBounce = function(ratio) { var s = 7.5625; var p = 2.75; var l; if(ratio < 1.0 / p) { l = s * Math.pow(ratio,2); } else if(ratio < 2.0 / p) { ratio -= 1.5 / p; l = s * Math.pow(ratio,2) + 0.75; } else if(ratio < 2.5 / p) { ratio -= 2.25 / p; l = s * Math.pow(ratio,2) + 0.9375; } else { ratio -= 2.625 / p; l = s * Math.pow(ratio,2) + 0.984375; } return l; } Transitions.easeInOutBounce = function(ratio) { return Transitions.easeCombined(Transitions.easeInBounce,Transitions.easeOutBounce,ratio); } Transitions.easeOutInBounce = function(ratio) { return Transitions.easeCombined(Transitions.easeOutBounce,Transitions.easeInBounce,ratio); } Transitions.easeCombined = function(startFunc,endFunc,ratio) { if(ratio < 0.5) { return 0.5 * startFunc(ratio * 2.0); } else { return 0.5 * endFunc((ratio - 0.5) * 2.0) + 0.5; } } Transitions.LINEAR = "linear" Transitions.EASE_IN = "easeIn" Transitions.EASE_OUT = "easeOut" Transitions.EASE_IN_OUT = "easeInOut" Transitions.EASE_OUT_IN = "easeOutIn" Transitions.EASE_IN_BACK = "easeInBack" Transitions.EASE_OUT_BACK = "easeOutBack" Transitions.EASE_IN_OUT_BACK = "easeInOutBack" Transitions.EASE_OUT_IN_BACK = "easeOutInBack" Transitions.EASE_IN_ELASTIC = "easeInElastic" Transitions.EASE_OUT_ELASTIC = "easeOutElastic" Transitions.EASE_IN_OUT_ELASTIC = "easeInOutElastic" Transitions.EASE_OUT_IN_ELASTIC = "easeOutInElastic" Transitions.EASE_IN_BOUNCE = "easeInBounce" Transitions.EASE_OUT_BOUNCE = "easeOutBounce" Transitions.EASE_IN_OUT_BOUNCE = "easeInOutBounce" Transitions.EASE_OUT_IN_BOUNCE = "easeOutInBounce" // Export exports.default = Transitions;