Stopwatch : Trace Utilities « Development « Flash / Flex / ActionScript

Flash / Flex / ActionScript
1. Animation
2. Array
3. Class
4. Data Type
5. Development
6. Function
7. Graphics
8. Language
9. Network
10. Regular Expressions
11. Statement
12. String
13. TextField
14. XML
Java
Java Tutorial
Java Source Code / Java Documentation
Java Open Source
Jar File Download
Java Articles
Java Products
Java by API
Photoshop Tutorials
Maya Tutorials
Flash Tutorials
3ds-Max Tutorials
Illustrator Tutorials
GIMP Tutorials
C# / C Sharp
C# / CSharp Tutorial
C# / CSharp Open Source
ASP.Net
ASP.NET Tutorial
JavaScript DHTML
JavaScript Tutorial
JavaScript Reference
HTML / CSS
HTML CSS Reference
C / ANSI-C
C Tutorial
C++
C++ Tutorial
Ruby
PHP
Python
Python Tutorial
Python Open Source
SQL Server / T-SQL
SQL Server / T-SQL Tutorial
Oracle PL / SQL
Oracle PL/SQL Tutorial
PostgreSQL
SQL / MySQL
MySQL Tutorial
VB.Net
VB.Net Tutorial
VBA / Excel / Access / Word
XML
XML Tutorial
Microsoft Office PowerPoint 2007 Tutorial
Microsoft Office Excel 2007 Tutorial
Microsoft Office Word 2007 Tutorial
Flash / Flex / ActionScript » Development » Trace Utilities 
Stopwatch
 
/*
 * hexagon framework - Multi-Purpose ActionScript 3 Framework.
 * Copyright (C) 2007 Hexagon Star Softworks
 *       __    __
 *    __/  \__/  \__    __
 *   /  \__/HEXAGON \__/  \
 *   \__/  \__/ FRAMEWORK_/
 *            \__/  \__/
 *
 * ``The contents of this file are subject to the Mozilla Public License
 * Version 1.1 (the "License"); you may not use this file except in
 * compliance with the License. You may obtain a copy of the License at
 * http://www.mozilla.org/MPL/
 *
 * Software distributed under the License is distributed on an "AS IS"
 * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
 * License for the specific language governing rights and limitations
 * under the License.
 */
package com.hexagonstar.util.debug
{
  import flash.utils.getTimer;
  
  /**
   * Stopwatch stops the time.
   
   * Instantiate this class as follows:
   *   import com.hexagonstar.util.StopWatch;
   *   var stopWatch:StopWatch = new StopWatch();
   
   * This will create a still standing stopwatch. You can start
   * and stop the stopwatch to record time as you please.
   *   stopWatch.start();
   *   // Do something
   *   stopWatch.stop();
   
   * The recored time is available in milliseconds and seconds.
   *   trace(stopWatch.getTimeInMilliSeconds() + " ms");
   *   trace(stopWatch.getTimeInSeconds() + " s");
   
   */
  public class StopWatch
  {
    private var _started:Boolean = false;
    private var _startTimeKeys:Array;
    private var _stopTimeKeys:Array;
    private var _title:String;
    
    /** 
     * Constructs a new StopWatch instance.
     */
    public function StopWatch()
    {
      reset();
    }
    
    /**
     * Resets the stopwatch total running time.
     */
    public function reset():void
    {
      _startTimeKeys = new Array();
      _stopTimeKeys = new Array();
      _started = false;
    }
    
    /**
     * Starts the time recording process.
     */
    public function start(title:String = ""):void
    {
      if (!hasStarted())
      {
        _title = title;
        _started = true;
        _startTimeKeys.push(getTimer());
      }
    }
    
    /**
     * Stops the time recording process if the process has been started before.
     */
    public function stop():void
    {
      if (hasStarted())
      {
        var stopTime:uint = getTimer();
        _stopTimeKeys[_startTimeKeys.length - 1= stopTime;
        _started = false;
      }
    }
    
    /**
     * Returns whether this stopwatch has been started.
     
     @return           true if this stopwatch has been started else false.
     */
    public function hasStarted():Boolean
    {
      return _started;
    }
    
    /**
     * Calculates and returns the elapsed time in milliseconds.
     * This stopwatch will not be stopped by calling this method. If this stopwatch
     * is still running it takes the current time as stoptime for the result.
     
     @return           the elapsed time in milliseconds.
     */
    public function getTimeInMilliSeconds():int
    {
      if (hasStarted())
      {
        _stopTimeKeys[_startTimeKeys.length - 1= getTimer();
      }
      var result:int 0;
      for (var i:int 0; i < _startTimeKeys.length; i++)
      {
        result += (_stopTimeKeys[i- _startTimeKeys[i]);
      }
      return result;    
    }
    
    /**
     * Calculates and returns the elapsed time in seconds.
     * This stopwatch will not be stopped by calling this method. If this stopwatch
     * is still running it takes the current time as stoptime for the result.
     
     @return           the elapsed time in seconds.
     */
    public function getTimeInSeconds():Number
    {
      return getTimeInMilliSeconds() 1000;
    }
    
    /**
     * Generates a string representation of this stopwatch that includes all start and
     * stop times in milliseconds.
     
     @return           the string representation of this stopwatch.
     */
    public function toString():String
    {
      var result:String = "\n ********** [STOPWATCH] **********";
      if (_title != ""result += "\n  " + _title;
      for(var i:int 0; i < _startTimeKeys.length; i++)
      {
        result += "\n  started [" + _startTimeKeys[i]
          "ms] stopped [" + _stopTimeKeys[i"ms]";
      }
      if (i == 0result += "\n  never started.";
      else result += "\n  total runnning time: " + getTimeInMilliSeconds() "ms";
      result += "\n *********************************";
      return result;
    }
  }
}

        
Related examples in the same category
1. Sends trace actions to the Alcon output panel through a local connection
www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.