Hi Folks,
Habe hier mal was für alle Datums-Objekt geschädigten - eine auf UTC (Universal Coordinated) basierte Lösung. Sowohl für Flash MX als auch Flash MX 2004 geeignet.
Einzeln können die analog Uhren natürlich ebenfalls erzeugt werden:PHP-Code:
// 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);
}
/*
// Uhren (UTC)
// Berlin (+01:00)
initUTCUhr(Stage.width/2,Stage.height/2,50,2,"Berlin","uhr",1);
// Istanbul (+02:00)
initUTCUhr(Stage.width/2,75,50,3,"Istanbul","uhr2",2);
// New York (-05:00)
initUTCUhr(Stage.width/2,325,50,-5,"New York","uhr3",3);
// Moskau (+03:00)
//initUTCUhr(100,100,50,3,"Moskau","uhr4",4);
*/
HinweisPHP-Code:
// 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);
GMT (Greenwich Mean Time) - im normalen täglichen Gebrauch können UTC und GMT gleichgesetzt werden.
Info: Universal Time Coordinated
Die UTC 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, MESZ und GZ
MEZ (Mittel Europäische Zeit) Mittlere Sonnenzeit des durch Görlitz verlaufenden 15. östlichen Meridians
MESZ (MittelEuropäische SommerZeit) 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.
GZ (Gesetzliche Zeit) Durch das Zeitgesetz von 1978 wird 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
Liebe Grüsse
Matze K.
Geändert von Madokan (03.08.2005 um 07:01 Uhr)
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)