Im Folgenden wird ein kleiner ActionScript-Code (AS2) für einen Flash-Countdown vorgestellt. Anhand der Systemzeit und eines Enddatums wird die verbleibende Zeit errechnet. Um die Anwendung ein wenig interaktiv zu machen, kann man mittels eines Kalenders das Enddatum verändern.

Enddatum des Countdowns bestimmen

Zuerst legt man ein Enddatum fest. Hierzu nutzt man ein Objekt der Klasse Date. Im Beispiel ist das Datum der 3. September 2008, da die Monate bei 0 (=Januar) beginnen.

Actionscript:

  1. // ::::: COUNTDOWN DATE :::::::::::::::::::::::::::::::::::
  2.  

Countdown ständig aktualisieren

Anschließend sorgt man mit setInterval dafür, dass die Funktion updateCountdown alle 200 ms ausgeführt wird. Somit wird der Countdown ständig aktualisiert.

Actionscript:

  1. span style="color: #ff0000;">"updateCountdown", 200);

DataChooser

In der Funktion updateCountdown wird im Beispiel zuerst der Wert des Kalenders (=DataChooser) als neues Enddatum des Countdowns gesetzt. Dies ist natürlich nur zu Demonstrationszwecken. Hat man ein fixes Enddatum, erübrigt sich dieser Abschnitt.

Actionscript:

  1. // for DateChooser (delete this for use without DateChooser )
  2.  

Aktuelle Systemzeit auslesen

Nun speichert man die aktuelle Systemzeit ab:

Actionscript:

  1. // get system time
  2.  

Zeitdifferenz bilden

Jetzt gilt es, das aktuelle Datum vom Zieldatum abzuziehen, um die Zeitdifferenz zu erhalten. Dieser Wert mit der verbleibenden Zeit ist in Millisekunden!

Actionscript:

  1. // time between now and enddate
  2.  

Zeitzonen berücksichtigen

Nun sollte berücksichtigt werden, dass die beiden Daten in unterschiedlichen Zeitzonen liegen könnten (Winter- bzw. Sommerzeit in Deutschland). Diese kann man getrost herausrechnen, da sonst der Eindruck entsteht, der Countdown liegt eine Stunde daneben.

Actionscript:

  1. // Timezone offset?
  2.  

Millisekunden umrechnen

Abschließend errechnet man aus dem Wert in Millisekunden die einzelnen Bestandteile: Tage, Stunden, Minuten, Sekunden.

Actionscript:

  1. // determine seconds, minutes, hours and dates
  2. // Seconds left
  3. // Minutes left
  4. // Hours left
  5. // Days left      
  6.  
  7.     // mod
  8.  

Beispiel anschauen:

Kompletter Beispielcode des Flash-Countdowns

Der komplette am Stück lautet folgendermaßen:

Actionscript:

  1. // ::::: COUNTDOWN DATE :::::::::::::::::::::::::::::::::::
  2. // ::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  3. "updateCountdown", 200);
  4.  
  5.     // init Countdown
  6. // ::::: UPDATE COUNTDOWN :::::::::::::::::::::::::::::::::::
  7. // for DateChooser (delete this for use without DateChooser )
  8. // get system time
  9. // time between now and enddate
  10. // Timezone offset?
  11. // determine seconds, minutes, hours and dates
  12. // Seconds left
  13. // Minutes left
  14. // Hours left
  15. // Days left      
  16.  
  17.         // mod
  18. // update text 
  19. "Verbleibende Zeit: \n"" Tage \n"" Stunden \n"" Minuten \n"" Sekunden""Enddatum: \n"