1  /**
     2   * com.sekati.time.StopWatch
     3   * @version 1.0.7
     4   * @author jason m horwitz | sekati.com
     5   * Copyright (C) 2007  jason m horwitz, Sekat LLC. All Rights Reserved.
     6   * Released under the MIT License: http://www.opensource.org/licenses/mit-license.php
     7   */
     8   
     9  import com.sekati.core.CoreObject;
    10  
    11  /**
    12   * Simple stopwatch class
    13   */
    14  class com.sekati.time.StopWatch extends CoreObject {
    15  
    16  	private var _initTime:Number;
    17  	private var _endTime:Number;
    18  	private var _lastLap:Number;
    19  	private var _ms:Number;
    20  
    21  	/**
    22  	 * constructor
    23  	 * @param startNow (Boolean)
    24  	 */
    25  	public function StopWatch(startNow:Boolean) {
    26  		super( );
    27  		if(startNow) start( );
    28  	}
    29  
    30  	/**
    31  	 * start timer
    32  	 * @return Number ms since start (0)
    33  	 */
    34  	public function start():Number {
    35  		_initTime = getTimer( );
    36  		_lastLap = _initTime;
    37  		return read( );
    38  	}
    39  
    40  	/**
    41  	 * stop timer
    42  	 * @return (Number) ms since start
    43  	 */
    44  	public function stop():Number {
    45  		_endTime = getTimer( );
    46  		_ms = _endTime - _initTime;
    47  		return _ms;
    48  	}
    49  
    50  	/**
    51  	 * record and return lap
    52  	 * @return (Number) ms since last lap
    53  	 */
    54  	public function lap():Number {
    55  		var now:Number = getTimer( );
    56  		_ms = now - _lastLap;
    57  		_lastLap = now;
    58  		return _ms;
    59  	}
    60  
    61  	/**
    62  	 * read total time
    63  	 * @return (Number) ms since stopwatch was initialized
    64  	 */
    65  	public function read():Number {
    66  		var now:Number = getTimer( );
    67  		return now - _initTime;
    68  	}
    69  
    70  	/**
    71  	 * Destroy instance.
    72  	 */
    73  	public function destroy():Void {
    74  		stop( );
    75  		super.destroy( );
    76  	}			
    77  }