// AnalogUhr
function initUTCUhr(posX,posY,radius,pzone,pstadt,pname,ptiefe) {
//
Variablen Initialisierung
var radiant, start_x, start_y, end_x, end_y;
var zeit,std,mins,sek;
var sek_winkel,min_winkel,std_winkel;
var sek_radiant,min_radiant,std_radiant;
var sek_x,sek_y,min_x,min_y,std_x,std_y;
// Winkel in Bogenmass
function winkelBogen(winkel) {
return winkel/180*Math.PI;
}
// MovieClip für AnalogUhr erzeugen
this.createEmptyMovieClip(pname,ptiefe);
// Textfeld für Statdanzeige erzeugen
this[pname].createTextField("anzeige_txt",ptiefe+1,posX,posY+radius,0,0);
this[pname].anzeige_txt.autoSize = "center";
this[pname].anzeige_txt.text = pstadt;
// Ziffernblatt zeichnen
for(var i=1; i<=60; i++) {
radiant = winkelBogen(i*6);
if (i%5 == 0) {
start_x = Math.cos(radiant)*(radius-10);
start_y = Math.sin(radiant)*(radius-10);
end_x = Math.cos(radiant)*radius;
end_y = Math.sin(radiant)*radius;
this.lineStyle(2, 0, 100);
this.moveTo(posX+start_x, posY+start_y);
this.lineTo(posX+end_x, posY+end_y);
} else {
start_x = Math.cos(radiant)*(radius-5);
start_y = Math.sin(radiant)*(radius-5);
end_x = Math.cos(radiant)*radius;
end_y = Math.sin(radiant)*radius;
this.lineStyle(1, 0, 100);
this.moveTo(posX+start_x, posY+start_y);
this.lineTo(posX+end_x, posY+end_y);
}
}
this[pname].onEnterFrame = function() {
// Zeiger entfernen
this.clear();
// Uhrzeit ermitteln
zeit = new Date();
sek = zeit.getUTCSeconds();
mins = zeit.getUTCMinutes();
std = zeit.getUTCHours()+pzone;
// AM/PM ermitteln
if (std >= 24) {
std = std - 24;
}
if (std < 12) {
this.anzeige_txt.text = pstadt + " / am";
} else {
this.anzeige_txt.text = pstadt + " / pm";
}
// Zeigerwinkel berechnen
sek_winkel = sek*6-90;
min_winkel = mins*6-90;
std_winkel = std*30+mins/60*30-90;
// die winkel werden in bogenmaße umgerechnet
sek_radiant = winkelBogen(sek_winkel);
min_radiant = winkelBogen(min_winkel);
std_radiant = winkelBogen(std_winkel);
// Zeigerpunkte via Sin/Cos berechnen
// Sekunden
sek_x = posX + Math.cos(sek_radiant)*radius;
sek_y = posY + Math.sin(sek_radiant)*radius;
// Minuten
min_x = posX + Math.cos(min_radiant)*(radius*1);
min_y = posY + Math.sin(min_radiant)*(radius*1);
// Sekunden
std_x = posX + Math.cos(std_radiant)*(radius*.75);
std_y = posY + Math.sin(std_radiant)*(radius*.75);
// Zeiger zeichnen
// Sekunden
this.lineStyle(1, 0xff0000, 100);
this.moveTo(posX, posY);
this.lineTo(sek_x, sek_y);
// Minuten
this.lineStyle(2, 0, 100);
this.moveTo(posX, posY);
this.lineTo(min_x, min_y);
// Stunden
this.lineStyle(3, 0, 100);
this.moveTo(posX, posY);
this.lineTo(std_x, std_y);
}
}
// Städte und Zeitzonen
var x=0,y=0;
stadtliste = new Array("Berlin","Istanbul","New York","Moskau","Tokyo","Sydney");
zonenliste = new Array(2,3,-5,4,9,10);
// Uhren erzeugen
for (var j=0; j < stadtliste.length; j++) {
startpos = 150;
x++;
pX = startpos + 120*x;
if (j%3 == 0) {
x=0;
y++;
pX = startpos;
pY = 120*y;
}
initUTCUhr(pX,pY,50,zonenliste[j],stadtliste[j],"uhr"+j,j);
}