De meeste code in de klasse AnalogClockFace heeft betrekking op het instellen van de weergave-elementen van de klok. Wanneer de AnalogClockFace wordt geïnitialiseerd, wordt er een cirkelomtrek getekend, wordt er een numerieke tekstlabel op elke uurmarkering opgenomen en worden er drie objecten Shape gemaakt: één voor de uurwijzer, één voor de minuutwijzer en één voor de secondewijzer op de klok.
Wanneer de toepassing SimpleClock wordt uitgevoerd, wordt elke seconde de methode
AnalogClockFace.draw()
aangeroepen, op de volgende manier:
/**
* Called by the parent container when the display is being drawn.
*/
public override function draw():void
{
// stores the current date and time in an instance variable
currentTime = new Date();
showTime(currentTime);
}
Met deze methode wordt de huidige tijd in een variabele opgeslagen zodat de tijd niet kan worden gewijzigd terwijl de wijzers van de klok worden getekend. Vervolgens wordt de methode
showTime()
aangeroepen om de wijzers weer te geven, zoals hieronder wordt aangegeven:
/**
* Displays the given Date/Time in that good old analog clock style.
*/
public function showTime(time:Date):void
{
// gets the time values
var seconds:uint = time.getSeconds();
var minutes:uint = time.getMinutes();
var hours:uint = time.getHours();
// multiplies by 6 to get degrees
this.secondHand.rotation = 180 + (seconds * 6);
this.minuteHand.rotation = 180 + (minutes * 6);
// Multiply by 30 to get basic degrees, then
// add up to 29.5 degrees (59 * 0.5)
// to account for the minutes.
this.hourHand.rotation = 180 + (hours * 30) + (minutes * 0.5);
}
Met deze methode worden eerst de waarden voor de uren, minuten en seconden van de huidige tijd geëxtraheerd. Vervolgens worden deze waarden gebruikt om de hoek voor elke wijzer te berekenen. Aangezien de secondewijzer in 60 seconden volledig rond gaat, wordt deze elke seconde zes graden verplaatst (360/60). De minuutwijzer draait elke minuut dezelfde hoeveelheid.
De uurwijzer wordt elke minuut bijgewerkt. Deze wordt elk uur 30 graden (360/12) gedraaid en dus elke minuut een halve graad (30 graden gedeeld door 60 minuten).