15. Zeit und Datum
Zeitanzeige digital
- Wir erstellen eine neue Datei mit den 2 Ebenen Skript und Text.
- In der Ebene Text kommt ein dynamischer Text für die Zeitanzeige im Format
00:00:00 für Stunden:Minuten:Sekunden.
- Der dynamische Text bekommt den Variablennamen Zeit zugewiesen.

- Das Bild 1 wird um 1 Bild bis Bild 2 verlängert.
- In der Skript Ebene wird in Bild 2 der gotoAndPlay(2); Befehl eingefügt.
- Nun folgt das Skript für das Bild 1:
// Datum wird als Date-Objekt definiert
Datum = new Date();
// dd:hh:ss werden in Variablen ausgelesen
DatumStunden = Datum.getHours();
DatumMinuten = Datum.getMinutes();
DatumSekunden = Datum.getSeconds();
// dem dynamischen Text werden die Variablen zugewiesen
_root.Zeit = DatumStunden + ":" + DatumMinuten + ":" + DatumSekunden;
- Die Befehle findet man unter Objekte / Date. Die Uhr funktioniert schon:
flash/15_03a.swf
flash/15_03a.fla
.
- Aber Sie hat noch einen Schönheitsfehler, wenn die Zahlen nur einstellig
sind. Diesen können wir nun über eine If-Abfrage noch lösen.
- Hier die Beispielabfrage für die Stunden:
if (DatumStunden < 10)
DatumStunden = "0" + DatumStunden;
- Hier kommt wieder die Besonderheit von Flash zum tragen, das numerische
Variablen mit Strings ergänzt werden dürfen und die Variablen sich dann
automatisch ein eine Stringvariable verwandeln flash/15_03b.swf
flash/15_03b.fla
.
Zeitanzeige analog
- Für die analoge Uhr ist vor allem Zeichenarbeit gefragt. Als erstes
erstellen wir 3 Symbole als Filmsequenz mit 3 verschieden langen Strichen. Der
Kürzeste wird als Stunde, der Mittlere als Minute und der Längste als Sekunde
gespeichert. Am Besten schaltet man dafür das Gitternetz ein. Alle Striche
müssen am unteren Ende Ihren Mittelpunkt haben!
Bsp. Stunde:

- Nun benötigen wir auf der Bühne noch einen Kreis und einen Mittelpunkt.
Auf diesem werden dann die Zeiger in Richtung 12 Uhr angeordnet. Jeder der
beiden Kreise wird über Modifizieren / Gruppieren
( Strg + G) zusammen gefasst. Über
Modifizieren / Anordnen können die Grafiken
und Symbole in die richtige Reihenfolge gebracht werden.

- Die Instanzen der Zeiger werden genauso benannt wie in der Bibliothek:
Sekunde, Minute und Stunde.
- Nun benötigen wir nur noch ein wenig ActionScript im 1. Bild der Ebene
Skript. Um den Sekunden Zeiger zu bewegen lautet der Befehl:
setProperty (_root.Sekunde, _rotation, 360 / 60 * DatumSekunden);
- Der gesamte Kreis von 360 Grad wird durch 60 geteilt, wodurch die Grad je
Sekunde errechnet werden und diese wird mit der momentanen Sekundenanzahl
multipliziert und über die Eigenschaft _rotation der Instanz _root.Sekunde
zugewiesen.
- Wie lauten jetzt die noch fehlenden Zeilen für Minute und Stunde? Bitte
erst mal selbst überlegen!!!
- Während die Minute noch einfach ist, da auch einfach mit dem Teiler 60
gearbeitet wird, schleicht sich bei der Stunde schon mal leicht ein
Flüchtigkeitsfehler ein. Der Tag hat zwar 24 Stunden aber die Zeiger auf der
analogen Uhr drehen sich 2 x 12 Stunden. Deshalb muss der Teiler 12 heißen.
Hier die noch fehlenden Zeilen:
setProperty (_root.Minute, _rotation, 360 / 60 * DatumMinuten);
setProperty (_root.Stunde, _rotation, 360 / 12 * DatumStunden);
- So einfach ist eine analoge Uhr gebastelt flash/15_03c.swf
flash/15_03c.fla
.