aboutsummaryrefslogtreecommitdiff
path: root/includes/js/dojox/fx/_core.js
diff options
context:
space:
mode:
Diffstat (limited to 'includes/js/dojox/fx/_core.js')
-rw-r--r--includes/js/dojox/fx/_core.js60
1 files changed, 60 insertions, 0 deletions
diff --git a/includes/js/dojox/fx/_core.js b/includes/js/dojox/fx/_core.js
new file mode 100644
index 0000000..54698ad
--- /dev/null
+++ b/includes/js/dojox/fx/_core.js
@@ -0,0 +1,60 @@
+if(!dojo._hasResource["dojox.fx._core"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
+dojo._hasResource["dojox.fx._core"] = true;
+dojo.provide("dojox.fx._core");
+
+dojox.fx._Line = function(start, end){
+ // summary: a custom _Line to accomodate multi-dimensional values
+ //
+ // description:
+ // a normal dojo._Line is the curve, and does Line(start,end)
+ // for propertyAnimation. as we make more complicatied animations, we realize
+ // some properties can have 2, or 4 values relevant (x,y) or (t,l,r,b) for example
+ //
+ // this function provides support for those Lines, and is ported directly from 0.4
+ // this is a lot of extra code for something so seldom used, so we'll put it here as
+ // and optional core addition. you can create a new line, and use it during onAnimate
+ // as you see fit.
+ //
+ // start: Integer|Array
+ // An Integer (or an Array of integers) to use as a starting point
+ // end: Integer|Array
+ // An Integer (or an Array of integers) to use as an ending point
+ //
+ // example: see dojox.fx.smoothScroll
+ //
+ // example:
+ // | // this is 10 .. 100 and 50 .. 500
+ // | var curve = new dojox.fx._Line([10,50],[100,500]);
+ // | // dojo._Animation.onAnimate is called at every step of the animation
+ // | // to define current values. this _Line returns an array
+ // | // at each step. arguments[0] and [1] in this example.
+ //
+ this.start = start;
+ this.end = end;
+ if(dojo.isArray(start)){
+ // multi-dimensional branch
+ var diff = [];
+ dojo.forEach(this.start, function(s,i){
+ diff[i] = this.end[i] - s;
+ }, this);
+
+ this.getValue = function(/*float*/ n){
+ var res = [];
+ dojo.forEach(this.start, function(s, i){
+ res[i] = (diff[i] * n) + s;
+ }, this);
+ return res; // Array
+ }
+ }else{
+ // single value branch, document here for both branches:
+ var diff = end - start;
+ this.getValue = function(/*float*/ n){
+ // summary: Returns the point on the line, or an array of points
+ // n: a floating point number greater than 0 and less than 1
+ // returns: Mixed
+ return (diff * n) + this.start; // Decimal
+ }
+ }
+};
+
+}