Я бы просто расширил стандартный таймер:

Код AS3:
package
{
import flash.events.TimerEvent;
import flash.utils.Timer;
public class ExtendedTimer extends Timer
{
public function ExtendedTimer(delay:Number, repeatCount:int=0)
{
super(delay, repeatCount);
}
override public function stop():void
{
super.stop();
if(currentCount != repeatCount)
dispatchEvent(new TimerEvent(TimerEvent.TIMER_COMPLETE));
}
}
}