| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- function heriter(destination, source) {
- function initClassIfNecessary(obj) {
- if( typeof obj["_super"] == "undefined" ) {
- obj["_super"] = function() {
- var methodName = arguments[0];
- var parameters = arguments[1];
- this["__parent_methods"][methodName].apply(this, parameters);
- }
- }
-
- if( typeof obj["__parent_methods"] == "undefined" ) {
- obj["__parent_methods"] = {}
- }
- }
-
- for (var element in source) {
- if( typeof destination[element] != "undefined" ) {
- initClassIfNecessary(destination);
- destination["__parent_methods"][element] = source[element];
- } else {
- destination[element] = source[element];
- }
- }
- }
- /** PausableTimer **/
- function PausableTimer(func, millisec) {
- this.func = func;
- this.stTime = new Date().valueOf();
- this.timeout = setTimeout(func, millisec);
- this.timeLeft = millisec;
- }
- PausableTimer.prototype.stop = function() {
- clearTimeout(this.timeout);
- };
- PausableTimer.prototype.pause = function() {
- clearTimeout(this.timeout);
- var timeRan = new Date().valueOf()-this.stTime;
- this.timeLeft -= timeRan;
- };
- PausableTimer.prototype.resume = function() {
- this.timeout = setTimeout(this.func, this.timeLeft);
- this.stTime = new Date().valueOf();
- };
- //Usage:
- //var myTimer = new PausableTimer(function(){alert("It works!");}, 2000);
- //myTimer.pause();
- //myTimer.unpause();
|