Upgrade to ExtJS 3.0.0 - Released 07/06/2009
[extjs.git] / docs / source / ext-base-anim-extra.html
diff --git a/docs/source/ext-base-anim-extra.html b/docs/source/ext-base-anim-extra.html
new file mode 100644 (file)
index 0000000..b25662c
--- /dev/null
@@ -0,0 +1,304 @@
+<html>\r
+<head>\r
+  <title>The source code</title>\r
+    <link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />\r
+    <script type="text/javascript" src="../resources/prettify/prettify.js"></script>\r
+</head>\r
+<body  onload="prettyPrint();">\r
+    <pre class="prettyprint lang-js">// Easing functions\r
+(function(){\r
+       // shortcuts to aid compression\r
+       var abs = Math.abs,\r
+               pi = Math.PI,\r
+               asin = Math.asin,\r
+               pow = Math.pow,\r
+               sin = Math.sin,\r
+               EXTLIB = Ext.lib;\r
+               \r
+    Ext.apply(EXTLIB.Easing, {\r
+        \r
+        easeBoth: function (t, b, c, d) {\r
+               return ((t /= d / 2) < 1)  ?  c / 2 * t * t + b  :  -c / 2 * ((--t) * (t - 2) - 1) + b;               \r
+        },\r
+        \r
+        easeInStrong: function (t, b, c, d) {\r
+            return c * (t /= d) * t * t * t + b;\r
+        },\r
+\r
+        easeOutStrong: function (t, b, c, d) {\r
+            return -c * ((t = t / d - 1) * t * t * t - 1) + b;\r
+        },\r
+\r
+        easeBothStrong: function (t, b, c, d) {\r
+            return ((t /= d / 2) < 1)  ?  c / 2 * t * t * t * t + b  :  -c / 2 * ((t -= 2) * t * t * t - 2) + b;\r
+        },\r
+\r
+        elasticIn: function (t, b, c, d, a, p) {\r
+               if (t == 0 || (t /= d) == 1) {\r
+                return t == 0 ? b : b + c;\r
+            }              \r
+            p = p || (d * .3);             \r
+\r
+                       var s;\r
+                       if (a >= abs(c)) {\r
+                               s = p / (2 * pi) * asin(c / a);\r
+                       } else {\r
+                               a = c;\r
+                               s = p / 4;\r
+                       }\r
+       \r
+            return -(a * pow(2, 10 * (t -= 1)) * sin((t * d - s) * (2 * pi) / p)) + b;\r
+                     \r
+        },     \r
+       \r
+               elasticOut: function (t, b, c, d, a, p) {\r
+               if (t == 0 || (t /= d) == 1) {\r
+                return t == 0 ? b : b + c;\r
+            }              \r
+            p = p || (d * .3);             \r
+\r
+                       var s;\r
+                       if (a >= abs(c)) {\r
+                               s = p / (2 * pi) * asin(c / a);\r
+                       } else {\r
+                               a = c;\r
+                               s = p / 4;\r
+                       }\r
+       \r
+            return a * pow(2, -10 * t) * sin((t * d - s) * (2 * pi) / p) + c + b;       \r
+        },     \r
+       \r
+        elasticBoth: function (t, b, c, d, a, p) {\r
+            if (t == 0 || (t /= d / 2) == 2) {\r
+                return t == 0 ? b : b + c;\r
+            }                          \r
+                   \r
+            p = p || (d * (.3 * 1.5));                     \r
+\r
+            var s;\r
+            if (a >= abs(c)) {\r
+                   s = p / (2 * pi) * asin(c / a);\r
+            } else {\r
+                   a = c;\r
+                s = p / 4;\r
+            }\r
+\r
+            return t < 1 ?\r
+                       -.5 * (a * pow(2, 10 * (t -= 1)) * sin((t * d - s) * (2 * pi) / p)) + b :\r
+                    a * pow(2, -10 * (t -= 1)) * sin((t * d - s) * (2 * pi) / p) * .5 + c + b;\r
+        },\r
+\r
+        backIn: function (t, b, c, d, s) {\r
+            s = s ||  1.70158;                     \r
+            return c * (t /= d) * t * ((s + 1) * t - s) + b;\r
+        },\r
+\r
+\r
+        backOut: function (t, b, c, d, s) {\r
+            if (!s) {\r
+                s = 1.70158;\r
+            }\r
+            return c * ((t = t / d - 1) * t * ((s + 1) * t + s) + 1) + b;\r
+        },\r
+\r
+\r
+        backBoth: function (t, b, c, d, s) {\r
+            s = s || 1.70158;              \r
+\r
+            return ((t /= d / 2 ) < 1) ?\r
+                    c / 2 * (t * t * (((s *= (1.525)) + 1) * t - s)) + b :                 \r
+                       c / 2 * ((t -= 2) * t * (((s *= (1.525)) + 1) * t + s) + 2) + b;\r
+        },\r
+\r
+\r
+        bounceIn: function (t, b, c, d) {\r
+            return c - EXTLIB.Easing.bounceOut(d - t, 0, c, d) + b;\r
+        },\r
+\r
+\r
+        bounceOut: function (t, b, c, d) {\r
+        if ((t /= d) < (1 / 2.75)) {\r
+                return c * (7.5625 * t * t) + b;\r
+            } else if (t < (2 / 2.75)) {\r
+                return c * (7.5625 * (t -= (1.5 / 2.75)) * t + .75) + b;\r
+            } else if (t < (2.5 / 2.75)) {\r
+                return c * (7.5625 * (t -= (2.25 / 2.75)) * t + .9375) + b;\r
+            }\r
+            return c * (7.5625 * (t -= (2.625 / 2.75)) * t + .984375) + b;\r
+        },\r
+\r
+\r
+        bounceBoth: function (t, b, c, d) {\r
+            return (t < d / 2) ?\r
+                   EXTLIB.Easing.bounceIn(t * 2, 0, c, d) * .5 + b : \r
+                  EXTLIB.Easing.bounceOut(t * 2 - d, 0, c, d) * .5 + c * .5 + b;\r
+        }\r
+    });\r
+})();\r
+\r
+(function() {\r
+    var EXTLIB = Ext.lib;\r
+       // Color Animation\r
+       EXTLIB.Anim.color = function(el, args, duration, easing, cb, scope) {\r
+           return EXTLIB.Anim.run(el, args, duration, easing, cb, scope, EXTLIB.ColorAnim);\r
+       }\r
+       \r
+    EXTLIB.ColorAnim = function(el, attributes, duration, method) {\r
+        EXTLIB.ColorAnim.superclass.constructor.call(this, el, attributes, duration, method);\r
+    };\r
+\r
+    Ext.extend(EXTLIB.ColorAnim, EXTLIB.AnimBase);\r
+\r
+    var superclass = EXTLIB.ColorAnim.superclass,\r
+       colorRE = /color$/i,\r
+       transparentRE = /^transparent|rgba\(0, 0, 0, 0\)$/,\r
+        rgbRE = /^rgb\(([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\)$/i,\r
+        hexRE= /^#?([0-9A-F]{2})([0-9A-F]{2})([0-9A-F]{2})$/i,\r
+        hex3RE = /^#?([0-9A-F]{1})([0-9A-F]{1})([0-9A-F]{1})$/i,\r
+        isset = function(v){\r
+            return typeof v !== 'undefined';\r
+        }\r
+               \r
+       // private      \r
+    function parseColor(s) {   \r
+        var pi = parseInt,\r
+            base,\r
+            out = null,\r
+            c;\r
+        \r
+           if (s.length == 3) {\r
+            return s;\r
+        }\r
+        \r
+        Ext.each([hexRE, rgbRE, hex3RE], function(re, idx){\r
+            base = (idx % 2 == 0) ? 16 : 10;\r
+            c = re.exec(s);\r
+            if(c && c.length == 4){\r
+                out = [pi(c[1], base), pi(c[2], base), pi(c[3], base)];\r
+                return false;\r
+            }\r
+        });\r
+        return out;\r
+    }  \r
+\r
+    Ext.apply(EXTLIB.ColorAnim.prototype, {\r
+        getAttr : function(attr) {\r
+            var me = this,\r
+                el = me.el,\r
+                val;                \r
+            if(colorRE.test(attr)){\r
+                while(el && transparentRE.test(val = Ext.fly(el).getStyle(attr))){\r
+                    el = el.parentNode;\r
+                    val = "fff";\r
+                }\r
+            }else{\r
+                val = superclass.getAttr.call(me, attr);\r
+            }\r
+            return val;\r
+        },\r
+\r
+        doMethod : function(attr, start, end) {\r
+            var me = this,\r
+               val,\r
+               floor = Math.floor;            \r
+\r
+            if(colorRE.test(attr)){\r
+                val = [];\r
+             \r
+                   Ext.each(start, function(v, i) {\r
+                    val[i] = superclass.doMethod.call(me, attr, v, end[i]);\r
+                });\r
+\r
+                val = 'rgb(' + floor(val[0]) + ',' + floor(val[1]) + ',' + floor(val[2]) + ')';\r
+            }else{\r
+                val = superclass.doMethod.call(me, attr, start, end);\r
+            }\r
+            return val;\r
+        },\r
+\r
+        setRunAttr : function(attr) {\r
+            var me = this,\r
+                a = me.attributes[attr],\r
+                to = a.to,\r
+                by = a.by,\r
+                ra;\r
+                \r
+            superclass.setRunAttr.call(me, attr);\r
+            ra = me.runAttrs[attr];\r
+            if(colorRE.test(attr)){\r
+                var start = parseColor(ra.start),\r
+                    end = parseColor(ra.end);\r
+\r
+                if(!isset(to) && isset(by)){\r
+                    end = parseColor(by);\r
+                    Ext.each(start, function(item, i){\r
+                        end[i] = item + end[i];\r
+                    });\r
+                }\r
+                ra.start = start;\r
+                ra.end = end;\r
+            }\r
+        }\r
+       });\r
+})();  \r
+\r
+       \r
+(function() {\r
+           // Scroll Animation \r
+    var EXTLIB = Ext.lib;\r
+       EXTLIB.Anim.scroll = function(el, args, duration, easing, cb, scope) {          \r
+           return EXTLIB.Anim.run(el, args, duration, easing, cb, scope, EXTLIB.Scroll);\r
+       }\r
+       \r
+    EXTLIB.Scroll = function(el, attributes, duration, method) {\r
+        if(el){\r
+            EXTLIB.Scroll.superclass.constructor.call(this, el, attributes, duration, method);\r
+        }\r
+    };\r
+\r
+    Ext.extend(EXTLIB.Scroll, EXTLIB.ColorAnim);\r
+\r
+    var superclass = EXTLIB.Scroll.superclass,\r
+       SCROLL = 'scroll';\r
+\r
+    Ext.apply(EXTLIB.Scroll.prototype, {\r
+\r
+        doMethod : function(attr, start, end) {\r
+            var val,\r
+               me = this,\r
+               curFrame = me.curFrame,\r
+               totalFrames = me.totalFrames;\r
+\r
+            if(attr == SCROLL){\r
+                val = [me.method(curFrame, start[0], end[0] - start[0], totalFrames),\r
+                       me.method(curFrame, start[1], end[1] - start[1], totalFrames)];\r
+            }else{\r
+                val = superclass.doMethod.call(me, attr, start, end);\r
+            }\r
+            return val;\r
+        },\r
+\r
+        getAttr : function(attr) {\r
+            var me = this;\r
+\r
+            if (attr == SCROLL) {\r
+                return [me.el.scrollLeft, me.el.scrollTop];\r
+            }else{\r
+                return superclass.getAttr.call(me, attr);\r
+            }\r
+        },\r
+\r
+        setAttr : function(attr, val, unit) {\r
+            var me = this;\r
+\r
+            if(attr == SCROLL){\r
+                me.el.scrollLeft = val[0];\r
+                me.el.scrollTop = val[1];\r
+            }else{\r
+                superclass.setAttr.call(me, attr, val, unit);\r
+            }\r
+        }\r
+    });\r
+})();</pre>    \r
+</body>\r
+</html>
\ No newline at end of file