Homepage-Webhilfe Event-Banner

Timer

Ein Timer ermöglicht das verzögerte und ggf. mehrmalige Ausführen einer bestimmten Funktion. Ein Timer wird in AS3 mittels der Klasse Timer dargestellt (Package flash.utils). Dem Konstruktor wird die Wartezeit bzw. Dauer zwischen den Timerereignissen in Millisekunden (Eigenschaft delay) und die Anzahl der Wiederholungen (Eigenschaft repeatCount) übergeben. Der zweite Parameter ist dabei jedoch optional. Beim Zuweisen des Wertes 0 der Eigenschaft repeatCount, läuft der Timer sozusagen endlos. 0 ist dabei der Standardwert. Auf Grund einer technischen Begrenzung kann der Timer jedoch trotzdem maximal ca. 24 Tage laufen (bei der schnellstmöglichen Ausführung von 1ms). Über die Eigenschaft currentCount kann abgerufen werden, wie oft der Timer bereits ausgeführt wurde. Mittels der running-Eigenschaft kann zudem abgerufen werden, ob der Timer aktuell läuft oder nicht. Um einen Timer zu starten, rufen wir lediglich die Funktion start() auf. Ein Aufruf der stop()-Funktion hält den Timer an. Wollen wir den Timer anhalten und dabei zusätzlich den Zähler für die Ausführungen zurücksetzen, so können wir die Funktion reset() aufrufen. Der Timer verfügt über zwei Events, welche mittels der bekannten Funktion addEventListener() registriert werden können: TIMER und TIMER_COMPLETE. Das TIMER-Event tritt nach jedem Ablauf der angegebenen Zeit auf. Das Ereignis des TIMER_COMPLETE-Events tritt auf, wenn der Timer „abgelaufen“ ist. Dies ist der Fall, wenn der Timer so oft wie angegeben ausgeführt wurde.

private function init(e:Event = null):void 
{
	removeEventListener(Event.ADDED_TO_STAGE, init);
	
	var zaehler:Timer = new Timer(50, 25);
	zaehler.addEventListener(TimerEvent.TIMER, onTick);
	zaehler.addEventListener(TimerEvent.TIMER_COMPLETE, onTimerComplete);
	zaehler.start();
}

private function onTick(e:TimerEvent):void
{
	graphics.beginFill(0xFF0000);
	graphics.drawRect(20 * e.target.currentCount, 20 * e.target.currentCount, 80, 80);
	graphics.endFill();
}

private function onTimerComplete(e:TimerEvent):void
{
	graphics.beginFill(0x0000FF, 0.25);
	graphics.drawRect(20, 20, 560, 560)
	graphics.endFill();
}
VorschauDownload
Um unsere Webseite für Sie optimal zu gestalten und fortlaufend verbessern zu können, verwenden wir Cookies. Durch die weitere Nutzung der Webseite stimmen Sie der Verwendung von Cookies zu. Weitere Informationen OK