Вход Регистрация
Файл: Space race/libs/Editor_files/Timer.js
Строк: 100
<?php
/*!
 * @class bkcore.Timer
 *
 * new Date().getTime() wrapper to use as timers.
 * 
 * @author Thibaut 'BKcore' Despoulain <http://bkcore.com>
 */

/**
 * RAF shim
 */
window.requestAnimFrame = (function(){
  return  
window.requestAnimationFrame       || 
          
window.webkitRequestAnimationFrame || 
          
window.mozRequestAnimationFrame    || 
          
window.oRequestAnimationFrame      || 
          
window.msRequestAnimationFrame     || 
          function( 
callback ){
            
window.setTimeout(callback1000 60);
          };
})();

/*!
 * @package bkcore
 */
var bkcore bkcore || {};

/*!
 * Creates a new timer, inactive by default.
 * Call Timer.start() to activate.
 */
bkcore.Timer = function()
{
    
this.time = {
        
start0,
        
current0,
        
previous0,
        
elapsed0,
        
delta0
    
}

    
this.active false;
}

/*!
 * Starts/restarts the timer.
 */
bkcore.Timer.prototype.start = function()
{
    var 
now = new Date().getTime();

    
this.time.start now;
    
this.time.current now;
    
this.time.previous now;
    
this.time.elapsed 0;
    
this.time.delta 0;

    
this.active true;
}

/*!
 * Restarts timer, returning last ms tick
 */
bkcore.Timer.prototype.restart = function()
{
    var 
now = new Date().getTime();
    var 
now this.time.start;

    
this.time.start now;
    
this.time.current now;
    
this.time.previous now;
    
this.time.elapsed 0;
    
this.time.delta 0;

    
this.active true;

    return 
e;
}

/*!
 * Pauses(true)/Unpauses(false) the timer.
 *
 * @param bool Do pause
 */
bkcore.Timer.prototype.pause = function(bool)
{
    
this.active = !bool;
}

/*!
 * Update method to be called inside a RAF loop
 */
bkcore.Timer.prototype.update = function()
{
    if(!
this.active) return;

    var 
now = new Date().getTime();

    
this.time.current now;
    
this.time.elapsed this.time.current this.time.start;
    
this.time.delta now this.time.previous;
    
this.time.previous now;

    return 
this.time.elapsed;
}

/*!
 * Returns elapsed milliseconds
 */
bkcore.Timer.prototype.getElapsed = function()
{
    return 
this.time.elapsed;
}

/*!
 * Returns a formatted version of the current elapsed time using msToTime().
 *
 * 
 */
bkcore.Timer.prototype.getElapsedTime = function()
{
    return 
bkcore.Timer.msToTime(this.time.elapsed);
}

/*!
 * Formats a millisecond integer into a h/m/s/ms object
 * 
 * @param x int In milliseconds
 * @return Object{h,m,s,ms}
 */
bkcore.Timer.msToTime = function(t)
{
    var 
mssmh;
    
    
ms t%1000;

    
Math.floor((t/1000)%60);

    
Math.floor((t/60000)%60);
    
Math.floor((t/3600000));

    return {
h:hm:ms:sms:ms};
}

/*!
 * Formats a millisecond integer into a h/m/s/ms object with prefix zeros
 * 
 * @param x int In milliseconds
 * @return Object<string>{h,m,s,ms}
 */
bkcore.Timer.msToTimeString = function(t)
{
    var 
mssmh;
    
    
ms t%1000;
    if(
ms 10ms "00"+ms;
    else if(
ms 100ms "0"+ms;

    
Math.floor((t/1000)%60);
    if(
10"0"+s;

    
Math.floor((t/60000)%60);
    
Math.floor((t/3600000));

    return {
h:hm:ms:sms:ms};
}
?>
Онлайн: 3
Реклама