Diesen Tipp in Originalversion zeigen.
Weltzeituhr
Im Folgenden zeige ich Ihnen eine auf UTV (Universal Coordinated) basierende Lösung.
Das folgende Code-Beispiel ist sowohl für Flash MX, als auch für Flash MX 2004 geeignet:
// 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);
}
Einzeln können die analogen Uhren natürlich ebenfalls erzeugt werden:
// Uhren (UTC)
// Berlin (+01:00)
initUTCUhr(Stage.width/2,Stage.height/2,50,1,"Berlin","uhr",1);
// Istanbul (+02:00)
initUTCUhr(Stage.width/2,75,50,2,"Istanbul","uhr2",2);
// New York (-05:00)
initUTCUhr(Stage.width/2,325,50,-5,"New York","uhr3",3);
Hinweise: Im normalen, täglichen Gebrauch können UTC und GMT gleichgesetzt werden.
Die UTC (Universal Time Coordinated) wird durch Mittelung der Zeittakte von genau 100 ausgewählten, in diversen Staaten betriebenen, Atomuhren erzeugt. Die Signale dieser Atomuhren laufen beim "Internationalen Büro für die Zeit" in Paris zusammen. In Deutschland wurde die UTC durch das "Gesetz über die Zeitbestimmung" vom 25.07. 1978 eingeführt. In den Arbeitskarten und Unterlagen des Deutschen Wetterdienstes wird die UTC seit 1985 verwendet.
MEZ (MittelEuropäische Zeit) ist die mittlere Sonnenzeit des durch Görlitz verlaufenden 15. östlichen Meridians.
MESZ (MittelEuropäische SommerZeit) ist die, gegenüber der mitteleuroäischen Zeit um 1 Stunde vorverlegte, Uhrzeit zur besseren Ausnutzung des Tageslichtes und zur Herbeiführung von Erleichterungen im europäischen Bahnreiseverkehr während des Sommerhalbjahres.
Die GZ (Gesetzliche Zeit) wurde durch das Zeitgesetz von 1978 die mitteleuropäische Zeit MEZ oder die mitteleuropäische Sommerzeit MESZ als gesetzliche Zeit festgelegt. Sie soll im amtlichen und geschäftlichen Verkehr verwendet werden. Die Bezeichnung GZ bei Zeitangaben bedeutet daher im Sommer MESZ und im Winter MEZ.
Der Unterschied zwischen MEZ beziehungsweise MESZ und der koordinierten Weltzeitskala UTC beträgt:
MEZ = UTC + 1h
MESZ = UTC + 2h
Autor: Matthias Kannengiesser
Website: Flashstar.de ()
Copyright (c) 2002-2005 by Andreas Schroth
URL: www.computer-tipps.net/webdesign189.html