Spaces:
Running
Running
/** | |
* @author alteredq / http://alteredqualia.com/ | |
*/ | |
function Clock( autoStart ) { | |
this.autoStart = ( autoStart !== undefined ) ? autoStart : true; | |
this.startTime = 0; | |
this.oldTime = 0; | |
this.elapsedTime = 0; | |
this.running = false; | |
} | |
Object.assign( Clock.prototype, { | |
start: function () { | |
this.startTime = ( typeof performance === 'undefined' ? Date : performance ).now(); // see #10732 | |
this.oldTime = this.startTime; | |
this.elapsedTime = 0; | |
this.running = true; | |
}, | |
stop: function () { | |
this.getElapsedTime(); | |
this.running = false; | |
this.autoStart = false; | |
}, | |
getElapsedTime: function () { | |
this.getDelta(); | |
return this.elapsedTime; | |
}, | |
getDelta: function () { | |
var diff = 0; | |
if ( this.autoStart && ! this.running ) { | |
this.start(); | |
return 0; | |
} | |
if ( this.running ) { | |
var newTime = ( typeof performance === 'undefined' ? Date : performance ).now(); | |
diff = ( newTime - this.oldTime ) / 1000; | |
this.oldTime = newTime; | |
this.elapsedTime += diff; | |
} | |
return diff; | |
} | |
} ); | |
export { Clock }; | |