15.10.2012 Views

Actionscript 3 Entwicklerhandbuch

Actionscript 3 Entwicklerhandbuch

Actionscript 3 Entwicklerhandbuch

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

ACTIONSCRIPT 3.0 ENTWICKLERHANDBUCH<br />

Arbeiten mit Datum und Zeit<br />

Anzeigen der aktuellen Uhrzeit<br />

Flash Player 9 und höher, Adobe AIR 1.0 und höher<br />

Mit dem Code der AnalogClockFace-Klasse werden hauptsächlich die Anzeigeelemente des Zifferblatts eingerichtet.<br />

Nach dem Initialisieren der AnalogClockFace-Methode werden ein runder Rahmen gezeichnet und für jede Stunde<br />

eine numerische Textbeschriftung positioniert. Dann werden drei Shape-Objekte erstellt, jeweils für den Stunden-,<br />

den Minuten- und den Sekundenzeiger.<br />

Beim Ausführen der Anwendung „SimpleClock“ wird die AnalogClockFace.draw()-Methode jede Sekunde<br />

aufgerufen, wie im Folgenden dargestellt:<br />

/**<br />

* Called by the parent container when the display is being drawn.<br />

*/<br />

public override function draw():void<br />

{<br />

// stores the current date and time in an instance variable<br />

currentTime = new Date();<br />

showTime(currentTime);<br />

}<br />

Mit dieser Methode wird die aktuelle Uhrzeit in einer Variablen gespeichert, sodass sich die Uhrzeit beim Zeichnen<br />

der Uhrzeiger nicht ändert. Dann wird die showTime()-Methode aufgerufen, mit der die Uhrzeiger gezeichnet<br />

werden:<br />

/**<br />

* Displays the given Date/Time in that good old analog clock style.<br />

*/<br />

public function showTime(time:Date):void<br />

{<br />

// gets the time values<br />

var seconds:uint = time.getSeconds();<br />

var minutes:uint = time.getMinutes();<br />

var hours:uint = time.getHours();<br />

}<br />

// multiplies by 6 to get degrees<br />

this.secondHand.rotation = 180 + (seconds * 6);<br />

this.minuteHand.rotation = 180 + (minutes * 6);<br />

// Multiply by 30 to get basic degrees, then<br />

// add up to 29.5 degrees (59 * 0.5)<br />

// to account for the minutes.<br />

this.hourHand.rotation = 180 + (hours * 30) + (minutes * 0.5);<br />

Mit dieser Methode werden zunächst die Werte für die Stunden, Minuten und Sekunden der aktuellen Uhrzeit<br />

abgerufen. Anschließend wird mit diesen Werten der Winkel für die einzelnen Uhrzeiger berechnet. Da beim<br />

Sekundenzeiger eine volle Umdrehung in 60 Sekunden erfolgt, dreht er sich pro Sekunde um 6 Grad (360/60). Auch<br />

der Minutenzeiger dreht sich pro Minute um 6 Grad.<br />

Der Stundenzeiger wird ebenfalls jede Minute aktualisiert, sodass nach jeder Minute eine Änderung festzustellen ist.<br />

Er dreht sich pro Stunde um 30 Grad (360/12), jedoch auch pro Minute um 0,5 Grad (30 Grad geteilt durch<br />

60 Minuten).<br />

Letzte Aktualisierung 27.6.2012<br />

9

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!