Zurück   Flashforum > Aktuelles > Tutorials > Flash Tutorials

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 14-05-2004, 16:20   #1 (permalink)
[Matthias K.] - Moderator
 
Benutzerbild von Madokan
 
Registriert seit: Jun 2001
Ort: Berlin/Germany - and the hole World !
Beiträge: 9.971
Post Weltzeituhr (MX und MX 2004)

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.

ActionScript:
  1. // AnalogUhr (UTC)
  2. function initUTCUhr(posX,posY,radius,pzone,pstadt,pname,ptiefe) {
  3.     // Variablen Initialisierung
  4.     var radiant, start_x, start_y, end_x, end_y;
  5.     var zeit,std,mins,sek;
  6.     var sek_winkel,min_winkel,std_winkel;
  7.     var sek_radiant,min_radiant,std_radiant;
  8.     var sek_x,sek_y,min_x,min_y,std_x,std_y;
  9.    
  10.     // Winkel in Bogenmass
  11.     function winkelBogen(winkel) {
  12.         return winkel/180*Math.PI;
  13.     }
  14.    
  15.     // MovieClip für AnalogUhr erzeugen
  16.     this.createEmptyMovieClip(pname,ptiefe);
  17.    
  18.     // Textfeld für Statdanzeige erzeugen
  19.     this[pname].createTextField("anzeige_txt",ptiefe+1,posX,posY+radius,0,0);
  20.     this[pname].anzeige_txt.autoSize = "center";
  21.     this[pname].anzeige_txt.text = pstadt;
  22.    
  23.     // Ziffernblatt zeichnen   
  24.     for(var i=1; i<=60; i++) {   
  25.         radiant = winkelBogen(i*6);  
  26.         if (i%5 == 0) {   
  27.             start_x = Math.cos(radiant)*(radius-10);
  28.             start_y = Math.sin(radiant)*(radius-10);
  29.             end_x = Math.cos(radiant)*radius;
  30.             end_y = Math.sin(radiant)*radius;         
  31.             this.lineStyle(2, 0, 100);
  32.             this.moveTo(posX+start_x, posY+start_y);
  33.             this.lineTo(posX+end_x, posY+end_y);               
  34.         } else {
  35.             start_x = Math.cos(radiant)*(radius-5);
  36.             start_y = Math.sin(radiant)*(radius-5);
  37.             end_x = Math.cos(radiant)*radius;
  38.             end_y = Math.sin(radiant)*radius;
  39.             this.lineStyle(1, 0, 100);
  40.             this.moveTo(posX+start_x, posY+start_y);
  41.             this.lineTo(posX+end_x, posY+end_y);
  42.         }
  43.     }
  44.     this[pname].onEnterFrame = function() {
  45.         // Zeiger entfernen  
  46.         this.clear();      
  47.         // Uhrzeit ermitteln
  48.         zeit = new Date();
  49.         sek = zeit.getUTCSeconds();
  50.         mins = zeit.getUTCMinutes();
  51.         std = zeit.getUTCHours()+pzone;
  52.         // AM/PM ermitteln
  53.                           if  (std >= 24) {
  54.               std = std - 24;
  55.         }
  56.         if (std < 12) {
  57.             this.anzeige_txt.text = pstadt + " / am";
  58.         } else {
  59.             this.anzeige_txt.text = pstadt + " / pm";
  60.         }
  61.         // Zeigerwinkel Berechnen
  62.         sek_winkel = sek*6-90;
  63.         min_winkel = mins*6-90;
  64.         std_winkel = std*30+mins/60*30-90;
  65.         // die winkel werden in bogenmaße umgerechnet
  66.         sek_radiant = winkelBogen(sek_winkel);
  67.         min_radiant = winkelBogen(min_winkel);
  68.         std_radiant = winkelBogen(std_winkel);
  69.         // Zeigerpunkte via Sin/Cos berechnen
  70.         // Sekunden
  71.         sek_x = posX + Math.cos(sek_radiant)*radius;
  72.         sek_y = posY + Math.sin(sek_radiant)*radius;
  73.         // Minuten
  74.         min_x = posX + Math.cos(min_radiant)*(radius*1);
  75.         min_y = posY + Math.sin(min_radiant)*(radius*1);
  76.         // Sekunden
  77.         std_x = posX + Math.cos(std_radiant)*(radius*.75);
  78.         std_y = posY + Math.sin(std_radiant)*(radius*.75);
  79.         // Zeiger zeichnen
  80.         // Sekunden
  81.         this.lineStyle(1, 0xff0000, 100);
  82.         this.moveTo(posX, posY);
  83.         this.lineTo(sek_x, sek_y);   
  84.         // Minuten
  85.         this.lineStyle(2, 0, 100);
  86.         this.moveTo(posX, posY);
  87.         this.lineTo(min_x, min_y);   
  88.         // Stunden
  89.         this.lineStyle(3, 0, 100);
  90.         this.moveTo(posX, posY);
  91.         this.lineTo(std_x, std_y);
  92.     }  
  93. }
  94.  
  95. // Städte und Zeitzonen
  96. var x=0,y=0;
  97. stadtliste = new Array("Berlin","Istanbul","New York","Moskau","Tokyo","Sydney");
  98. zonenliste = new Array(2,3,-5,4,9,10);
  99.  
  100. // Uhren erzeugen
  101. for (var j=0; j < stadtliste.length; j++) { 
  102.     startpos = 150;
  103.     x++;
  104.     pX = startpos + 120*x; 
  105.     if (j%3 == 0) {
  106.         x=0;
  107.         y++;
  108.         pX = startpos;
  109.         pY = 120*y;
  110.     }
  111.     initUTCUhr(pX,pY,50,zonenliste[j],stadtliste[j],"uhr"+j,j)
  112. }

Einzeln können die analog Uhren natürlich ebenfalls erzeugt werden:

ActionScript:
  1. // Uhren (UTC)
  2. // Berlin (+01:00)
  3. initUTCUhr(Stage.width/2,Stage.height/2,50,1,"Berlin","uhr",1);
  4. // Istanbul (+02:00)
  5. initUTCUhr(Stage.width/2,75,50,2,"Istanbul","uhr2",2);
  6. // New York (-05:00)
  7. initUTCUhr(Stage.width/2,325,50,-5,"New York","uhr3",3);

Hinweis
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.
Angehängte Dateien
Dateityp: zip fsweltuhrmx.zip (14,4 KB, 747x aufgerufen)

Geändert von Madokan (04-08-2005 um 06:23 Uhr)
Madokan ist offline   Mit Zitat antworten
Alt 06-08-2005, 08:27   #2 (permalink)
[Matthias K.] - Moderator
 
Benutzerbild von Madokan
 
Registriert seit: Jun 2001
Ort: Berlin/Germany - and the hole World !
Beiträge: 9.971
Hinweis
Ein kleines Update war fällig, da bei der Umstellung um Mitternacht ein kleiner Bug enthalten war, wenn es um "am" und "pm" geht.

Achtung
Der Funktionsparameter (Argument) ptiefe gehört zusammengeschrieben! Leider eine fehlerhafte Darstellung des Forums!

Liebe Grüsse
Matze K.

Geändert von Madokan (06-08-2005 um 17:04 Uhr)
Madokan ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist aus.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 00:10 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele