Btw when setting a start time other than 0 to the timer, it's the difference between both that will be calculated.
Example :

you app starts at 0ms, but for some reason you need some data loaded that your timer needs before it starts. You need to take into account the time elapsed.

var wantedEnd:Number = 2000;
var curTime:Number = getTimer();
soundTimer.startTimer(curTime, wantedEnd);

the Timer won't go for 2 seconds, but an event will be triggerred after 2 seconds of the Application launch.

HTH

Alain Rousseau wrote:

I made a Timer class that I use for another set of Classes I wrote. Here is the class itself, it's pretty precise and reliable so far. Hope it Helps !

usage :

import ca.daroost.utils.Timer;
soundTimer = new Timer();
soundTimer.addEventListener("onTimerDone", this);
soundTimer.addEventListener("onTimerStart", this);

soundTimer.startTimer(0, 2000); // 2 second timer

function onTimerDone(evtObj:Object) {
trace("Timer is done after "+evtObj.delta+"ms - wanted time is : "+evtObj.timerDelta+"ms");
}

function onTimerStart(evtObj:Object) {
   trace("Timer has started");
}

---- Class Start ---

import mx.events.EventDispatcher;
import mx.utils.Delegate;

class ca.daroost.utils.Timer {
// Constants:
   public static var CLASS_REF = ca.daroost.utils.Timer;
// Public Properties:
   public var dispatchEvent:Function;
   public var addEventListener:Function;
   public var removeEventListener:Function;
// Private Properties:
   private var tEnd:Number;
private var tStart:Number; // usually this is 0, but in case of a sound loop there could be a start offset private var _starttime:Number; // actual timer start value set with getTimer()
   private var tDelta:Number; // Delta time between tEnd and tStart
   private var tInterval:Number;
// Initialization:
   public function Timer(startTime:Number,endTime:Number) {
       EventDispatcher.initialize(this);
       tStart = (startTime != undefined) ? startTime : 0;
       tEnd = (endTime != undefined) ? endTime : 0;
       tDelta = 0;
       tInterval = 0;
   }

// Public Methods:
   public function startTimer(startTime:Number,endTime:Number) {
       tEnd = endTime;
       tStart = startTime;
       tDelta = tEnd - tStart;
       _starttime = getTimer();
       tInterval = setInterval(this, "updateTimer", 1);
this.dispatchEvent({target:this, type:"onTimerStart", startTime:tStart, endTime:tEnd});
   }
     public function set endTime(value:Number):Void {
       tEnd = value;
   }
     public function get endTime():Number {
       return tEnd;
   }
     public function set startTime(value:Number):Void {
       tStart = value;
   }
     public function get startTime():Number {
       return tStart;
   }
// Semi-Private Methods:
// Private Methods:
   private function updateTimer():Void {
       var _delta:Number;
       _delta = getTimer() - _starttime;
       if (_delta >= tDelta -50) {
           // here we will get a more precise value with the last 50 ms
           while (_delta < tDelta) {
               _delta = getTimer() - _starttime;
           }
this.dispatchEvent({target:this, type:"onTimerDone", delta:_delta, timerDelta:tDelta});
           clearInterval(tInterval);
                 }
   }

}


---- Class End---

Gustavo Duenas wrote:
Hi, I'm trying to set a timer to trigger a event after 20 seconds or less, but so far i have this code, but with no results
someone help me? .
I don't know how could I got into but some help might be needed


this is the code: is inside the first frame of a movie clip and the 4 frame has: gotoAndPlay(1);


var now = getTimer();
var seconds:Number = now/1000;
var later:Number = seconds+20;
this.onEnterFrame= function (){
    if(seconds == later){
        trace("llegamos");
           }
}
trace(seconds);



Regards


Gustavo Duenas



_______________________________________________
Flashcoders@chattyfig.figleaf.com
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

Brought to you by Fig Leaf Software
Premier Authorized Adobe Consulting and Training
http://www.figleaf.com
http://training.figleaf.com



_______________________________________________
Flashcoders@chattyfig.figleaf.com
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

Brought to you by Fig Leaf Software
Premier Authorized Adobe Consulting and Training
http://www.figleaf.com
http://training.figleaf.com



_______________________________________________
Flashcoders@chattyfig.figleaf.com
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

Brought to you by Fig Leaf Software
Premier Authorized Adobe Consulting and Training
http://www.figleaf.com
http://training.figleaf.com

Reply via email to