diff options
Diffstat (limited to 'js/dojo/dojox/timing/_base.js')
| -rw-r--r-- | js/dojo/dojox/timing/_base.js | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/js/dojo/dojox/timing/_base.js b/js/dojo/dojox/timing/_base.js new file mode 100644 index 0000000..7ed4f3c --- /dev/null +++ b/js/dojo/dojox/timing/_base.js @@ -0,0 +1,58 @@ +//>>built +define("dojox/timing/_base", ["dojo/_base/kernel", "dojo/_base/lang"], function(dojo){ + dojo.experimental("dojox.timing"); + dojo.getObject("timing", true, dojox); + + dojox.timing.Timer = function(/*int*/ interval){ + // summary: Timer object executes an "onTick()" method repeatedly at a specified interval. + // repeatedly at a given interval. + // interval: Interval between function calls, in milliseconds. + this.timer = null; + this.isRunning = false; + this.interval = interval; + + this.onStart = null; + this.onStop = null; + }; + + dojo.extend(dojox.timing.Timer, { + onTick: function(){ + // summary: Method called every time the interval passes. Override to do something useful. + }, + + setInterval: function(interval){ + // summary: Reset the interval of a timer, whether running or not. + // interval: New interval, in milliseconds. + if (this.isRunning){ + window.clearInterval(this.timer); + } + this.interval = interval; + if (this.isRunning){ + this.timer = window.setInterval(dojo.hitch(this, "onTick"), this.interval); + } + }, + + start: function(){ + // summary: Start the timer ticking. + // description: Calls the "onStart()" handler, if defined. + // Note that the onTick() function is not called right away, + // only after first interval passes. + if (typeof this.onStart == "function"){ + this.onStart(); + } + this.isRunning = true; + this.timer = window.setInterval(dojo.hitch(this, "onTick"), this.interval); + }, + + stop: function(){ + // summary: Stop the timer. + // description: Calls the "onStop()" handler, if defined. + if (typeof this.onStop == "function"){ + this.onStop(); + } + this.isRunning = false; + window.clearInterval(this.timer); + } + }); + return dojox.timing; +}); |
