I have the code:

```
var timer:Timer = new Timer(milliseconds, repititions);
timer.addEventListener(TimerEvent.TIMER, callback);
timer.start();

```

and if a user click I want to call the callback early. Is there was a way to either force the timer to finish immediately, or stop it and send the `TimerEvent.Timer` on my own?

I'm looking for something simple like the tween classes `fforward()`.

*EDIT*

The Solution was

```
timer.dispatchEvent(new TimerEvent(TimerEvent.TIMER));

```

I was trying to do `timer.dispatchEvent(new TimerEvent("TIMER"));` which doesn't work.
['https://Stackoverflow.com/questions/6312748', 'https://Stackoverflow.com', 'https://Stackoverflow.com/users/198034/']
```
var evt:TimerEvent = new TimerEvent(TimerEvent.TIMER);
timer.dispatchEvent(evt);

```
Have button call a function in my example i call it onDoEvent.  

onDoEvent will then call the timer event callback using the proper "CLICK" event.

```
import fl.controls.Button

var milliseconds:int = 3000;
var repititions:int = 0;
var timer:Timer = new Timer(milliseconds, repititions);
timer.addEventListener(TimerEvent.TIMER,onTimerEvent );

var btn_start:Button = new Button( );
btn_start.label = 'start';
btn_start.x = 0;
btn_start.addEventListener( MouseEvent.CLICK, onStart );
this.addChild( btn_start );
function onStart( e:Event ):void{
    timer.start();
}

var btn_stop:Button = new Button( );
btn_stop.label = 'stop';
btn_stop.x = 150;
btn_stop.addEventListener( MouseEvent.CLICK, onStop );
this.addChild( btn_stop );
function onStop( e:Event ):void{
    timer.stop();
}

var btn_doEvent:Button = new Button( );
btn_doEvent.label = 'Trigger Event';
btn_doEvent.x = 300;
btn_doEvent.addEventListener( MouseEvent.CLICK, onDoEvent );
this.addChild( btn_doEvent );
function onDoEvent( e:Event ):void{
    onTimerEvent( new TimerEvent("CLICK") );
}

function onTimerEvent(e:TimerEvent){
    trace('TimerEvent was triggered');
}

```