Im ersten Beispiel möchte ich kurz zeigen, wie man mit der Date-Klasse in ActionScript 3 umgeht. Ein Date-Objekt kann ein Datum und eine Uhrzeit beinhalten. Im Anschluss folgt ein Beispiel, wie man auf einfache Weise die aktuelle Zeitposition eines Videos im Format Minuten/Sekunden (z.B. 1:30) realisieren kann (Beispiel anschauen).

Zeitanzeige im Format Minuten/Sekunden eines Flashvideos

Beispiel 1: Date-Objekte

Hier zunächst das Ergebnis-SWF bzw. die vier Date-Objekte, die danach erklärt werden:

Wird ein Objekt der Date-Klasse mit einem leeren Konstruktor erstellt, enthält er das (zur Laufzeit) aktuelle Datum und die aktuelle Uhrzeit (vgl. erste Zeile im SWF).

Actionscript:

  1.  

Des Weiteren kann man dem Konstruktor das Jahr, den Monat und dem Tag mitgeben. Dabei beginnen die Monate nicht mit Eins, sondern Null (=Januar). Die Tage sind ab Eins durchnummeriert (1-31).

Actionscript:

  1.  

Als nächsten Schritt kann man auch eine Zeit ergänzen, in Stunden, Minuten, Sekunden. Im Beispiel ist dies genau 10:00 Uhr

Actionscript:

  1.  

Interessant wird es nun, wenn man Werte angibt, die außerhalb den in der Dokumentation angegebenen Bereichen liegen. Für second schreibt die Doku beispielsweise: second:Number (default = 0) — An integer from 0 to 59. Wählt man ein höhere Zahl, z.B. 100, wird diese automatisch richtig umgerechnet. Das Date-Objekt enthält also 1 Minute 40 Sekunden.

Actionscript:

  1. span style="color: #808080; font-style: italic;">// 100 Sekunden setzen
  2. "dt4.getMinutes: "

Über die Methoden wie getMinutes oder getSeconds lassen sich die einzelnen Bestandteile einer Zeitangabe auslesen.

Undokumentierte Funktionen in der Date-Klasse

Darron Schall weist in seinem Blog auf diese undokumentierten Funktionen hin. Auch negative Wert sind möglich. Beispiel new Date( 2006, 0, 1, -1 ) ist eine Stunde früher als der erste Januar, also der 31.12.05 um 23:00. Man kann also nach Belieben mit den Date-Objekten "rechnen".

Beispiel 2: Zeitanzeige für eine .flv-Datei

Spielt man ein Video über NetConnection/NetStream ab, wird die aktuelle Zeit des Videos (ns.time) ausschließlich in Sekunden zurückgegeben. Ein Video, das 1:20 dauert, durchläuft also 1 bis 80.

Nimmt man also ns.time und packt den Wert in ein Date-Objekt, rechnet dieses die Sekunden automatisch in die Form Stunden/Minuten/Sekunden um. Nun kann man mit getMinutes() und getSeconds() die Zeit des Videos auslesen.

Actionscript:

  1. span style="color: #ff0000;">":"

Damit bei einer einstelligen Sekundenzahl 1:05 statt 1:5 angezeigt wird, baut man noch eine Fallunterscheidung ein.

Actionscript:

  1. span style="color: #ff0000;">":0"":"

Quellcode zu Beispiel 2
Hier noch der komplette Quellcode zum Beispiel:

Actionscript:

  1. // ::: Video :::
  2. "gv.flv");
  3.  
  4. // ::: Timer :::
  5. "timer"// ::: Date :::
  6. ":0"":"// ::: Buttons :::
  7.  

Link: Beispiel anschauen
Link: Darron Schall (Beitrag vom 28.12.06)
Link: Date-Klasse (ActionScript 3 Reference)