Beispiel der Time Code Klasse

Ein vielgewünschtes Feature bei der Integration von Videos ist die Anzeige der Zeit. Leider liefert die NetStream-Klasse die aktuelle Position des Videos nur in vollen Sekunden (z.B. 80 Sekunden statt 1 Minute 20 Sekunden). Somit muss man für eine sinnvolle Zeitanzeige die Werte erst umrechnen.

Die TimeCode-Klasse übernimmt diese Aufgabe. Als Input erwartet sie nur die Anzahl der Sekunden. Als Ausgabe liefert sie einen String in der Form "Minuten:Sekunden" ("MM:SS", z.B. 02:10) oder "Stunden:Minuten:Sekunden" ("HH:MM:SS", z.B. 10:00:00). Da die Stundenangabe normalerweise im Internet nicht benötigt wird, ist die erste Variante standardmäßig aktiviert.

Um die Funktionsweise der TimeCode-Klasse zu verdeutlichen, habe hier den kurzen Beispielcode aus der .fla-Datei. Die Funktion getTC(Sekunden) liefert als Rückgabewert den Timecode. Die Funktion showHours(true) aktiviert das Stundenformat.

Für die (Video-)Praxis bedeutet dies: Einfach ein neues TimeCode-Objekt anlegen. Dann z.B. sinngemäß mit myTextField.text = myTimeCode.getTC (myNetStream.time) in einem Textfeld die Zeit anzeigen lasssen. Damit die Zeit ständig aktualisiert wird, einfach einen Timer setzen (siehe hier im Archiv).

Der Download-Link befindet sich im unteren Ende des Artikels.

Actionscript:
  1. // import TimeCode class
  2. import com.florianplag.TimeCode;
  3.  
  4. // new TimeCode
  5. var t:TimeCode = new TimeCode;
  6.  
  7. // example 1: 121 seconds
  8. var sec:Number = 121;
  9.  
  10. // trace
  11. trace (sec + " seconds = " + t.getTC(sec) + " (MM:SS)");
  12.  
  13. // example 2: showHours, 3601 seconds
  14. t.showHours (true);
  15. sec = 3601;
  16.  
  17. // trace
  18. trace (sec + " seconds = " + t.getTC(sec) + " (HH:MM:SS)");

Der Quellcode der Klasse lautet:

Actionscript:
  1. // TimeCode class by Florian Plag (www.video-flash.de)
  2. //
  3. // converts seconds into TimeCode (MM:SS or HH:MM:SS)
  4. // @author Florian Plag   
  5. // @version 0.2 (Update for Flash CS3)
  6.  
  7.  
  8. package com.florianplag {
  9.     public class TimeCode {
  10.        
  11.         private var _showHours:Boolean;
  12.        
  13.        
  14.         // :::: constructor ::::  
  15.         public function TimeCode() {
  16.             _showHours = false;
  17.         }
  18.  
  19.         // :::: showHours ::::         
  20.         public function showHours(show:Boolean) {
  21.             _showHours = show;
  22.         }
  23.        
  24.         // :::: getTC ::::      
  25.         public function getTC(seconds:Number):String {
  26.            
  27.             var result:String = "";  
  28.             var myTime = new Date(2007, 0, 1 , 0, 0, seconds);   
  29.        
  30.             // hours
  31.             if (_showHours == true) {
  32.                     if (myTime.getHours() <10) {
  33.                             result = "0" + myTime.getHours() + ":";
  34.                     }
  35.                     else {
  36.                             result = myTime.getHours() + ":";
  37.         };
  38.             };
  39.            
  40.             // minutes
  41.             if (myTime.getMinutes() <10) {
  42.                     result += "0" + myTime.getMinutes() + ":";
  43.             }
  44.             else {
  45.                     result += myTime.getMinutes() + ":";
  46.       };         
  47.            
  48.             // seconds
  49.             if (myTime.getSeconds() <10) {
  50.                     result += "0" + myTime.getSeconds();
  51.             }
  52.             else {
  53.                     result += myTime.getSeconds();
  54.       };
  55.            
  56.            
  57.         return result;
  58.         }
  59.        
  60.     }
  61. }

Link: TimeCode Klasse (ZIP) (Klasse und Beispiel)