Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 14-05-2005, 15:45   #1 (permalink)
Neuer User
 
Registriert seit: Dec 2002
Ort: Köln
Beiträge: 51
Uhrzeit mal anders

Hallo zusammen
Hab nur eine kurze bitte an euch, falls jemand sich hier das script anschauen könnte.
Ist von mir und 100% eigenbau.
Es funktoniert auch wunderbar, das einzigste Problem was man manchmal hat ist eben das mann mansche sachen auch einfacher machen könnte. Oder vieleicht kann es einer von euch gebrauchen.
Lest mal bitte Korrektur , ich würde mich über Kritik freuen, denn nur so kann man lernen.
Danke

ActionScript:
  1. // y und x positon der Uhr einstellen
  2. ypos = 0
  3. xpos = 600
  4. swfbreite = 800
  5. swfhoehe = 400
  6. //erstellen der querlinie
  7. _root.createEmptyMovieClip (["linielang"], 200);
  8.       with (_root.linielang){
  9.         lineStyle (1, 0x000000, 100);
  10.         moveTo (0, 25+ypos);
  11.         lineTo (swfbreite, 25+ypos);
  12. }
  13. // erstellen des "zeigers"
  14. _root.createEmptyMovieClip (["liniekurz"], 201);
  15.       with (_root.liniekurz){
  16.         lineStyle (1, 0x00ff00, 201);
  17.         moveTo (xpos, 20+ypos);
  18.         lineTo (xpos, 50+ypos);
  19. }
  20.  
  21. function counter() {
  22.         akdate = new Date();
  23.         tagjetzt = akdate.getDate()
  24.         monatjetzt = akdate.getMonth()
  25.         jahrjetzt = akdate.getFullYear()
  26.         sekundejetzt = akdate.getSeconds()
  27.         minutejetzt = akdate.getMinutes()
  28.         stundejetzt = akdate.getHours()
  29.         tagjetzt = (tagjetzt<10) ? "0" +tagjetzt : tagjetzt  
  30.         monatjetzt ++
  31.         monatjetzt = (monatjetzt<10) ? "0"+monatjetzt : monatjetzt
  32.         sekundejetzt = (sekundejetzt<10) ? "0"+sekundejetzt : sekundejetzt;
  33.         minutejetzt = (minutejetzt<10) ? "0"+minutejetzt : minutejetzt;
  34.         stujetzt = (stundejetzt<10) ? "0"+stundejetzt : stujetzt
  35.         stujetzt = (stundejetzt>=10) ? stundejetzt : stujetzt
  36.        
  37.     for (i=-15 ; i< 15; i++) {
  38.        
  39.         //erstellen der Textfelder mit zeit angaben
  40.         pos = (xpos - minutejetzt + (i*60))-100
  41.         _root.createTextField(["feld"+i], i, pos,ypos, 200, 100);
  42.         x =  stundejetzt + i
  43.         if (x>24)(x = x-24)
  44.         if (x<0)(x = x+24)
  45.         stun = (x>=10) ? x +":00" : stun;
  46.         stun = (x<10) ? "0"+ x +":00" : stun;
  47.         _root["feld"+i].text = stun;
  48.        
  49.         uhrFormat = new TextFormat();
  50.         uhrFormat.font = "Verdana";
  51.         uhrFormat.size = 10
  52.         uhrFormat.align = "center"
  53.         uhrFormat.color = 0x000000
  54.         _root["feld"+i].setTextFormat(uhrFormat)
  55.        
  56.         //erstellen der linien
  57.         _root.createEmptyMovieClip (["linie"+i], i+50);
  58.       with (_root["linie"+i]){
  59.         lineStyle (3, 0x000000, 100);
  60.         moveTo ((xpos-minutejetzt)+(i*60), 20+ypos);
  61.         lineTo ((xpos-minutejetzt)+(i*60), 30+ypos);
  62.      lineStyle (1, 0x000000, 100);
  63.         moveTo ((xpos-minutejetzt)+(i*60)+30, 22+ypos);
  64.         lineTo ((xpos-minutejetzt)+(i*60)+30, 28+ypos);
  65.         lineStyle (1, 0x000000, 100);
  66.         moveTo ((xpos-minutejetzt)+(i*60)+15, 23+ypos);
  67.         lineTo ((xpos-minutejetzt)+(i*60)+15, 27+ypos);
  68.         lineStyle (1, 0x000000, 100);
  69.         moveTo ((xpos-minutejetzt)+(i*60)-15, 23+ypos);
  70.         lineTo ((xpos-minutejetzt)+(i*60)-15, 27+ypos);
  71.    }
  72. }
  73.  
  74.  
  75. //      Datums und Uhranzeige
  76.         _root.createTextField("uhr", 205, xpos-100, ypos+50, 200, 50);
  77.         _root.uhr.text= stujetzt + ":" + minutejetzt + ":" + sekundejetzt;   
  78.         _root.createTextField("datum", 206, xpos-100, ypos+80, 200, 50);
  79.         _root.datum.text= tagjetzt + "." + monatjetzt + "." + jahrjetzt  
  80.  
  81.         meinFormat = new TextFormat();
  82.         meinFormat.font = "Verdana";
  83.         meinFormat.size = 20
  84.         meinFormat.align = "center"
  85.         meinFormat.color = 0xff00ff
  86.        
  87.         uhr.setTextFormat(meinFormat)
  88.         datum.setTextFormat(meinFormat)
  89. }
  90. //aktivierung des counters   
  91. setInterval(counter, 1000);
Jerud ist offline   Mit Zitat antworten
Alt 14-05-2005, 16:38   #2 (permalink)
poke
 
Registriert seit: Dec 2002
Ort: Iserlohn [NRW]
Beiträge: 2.304
ActionScript:
  1. _root.createEmptyMovieClip (["linielang"], 200);
  2. _root.createEmptyMovieClip (["liniekurz"], 201);
  3. _root.createTextField(["feld"+i], i, pos,ypos, 200, 100);
  4. _root.createEmptyMovieClip (["linie"+i], i+50);

mach da jeweils die eckige Klammern darum weg (hier wäre es ein Objekt und nicht die dynamische Pfadangabe. "linie"+i ist hier wirklich richtig) dann ist es ok

ansonsten hätte man hier und da etwas mehr auf Performance achten können. Ladezeit am anfang ist etwas heftig, und das alles jede sekunde neu gezeichnet werden muss ist auch etwas übertrieben aber nja

trotzdem schöne idee
pokepika ist offline   Mit Zitat antworten
Alt 14-05-2005, 17:20   #3 (permalink)
voidboy
 
Benutzerbild von rendner[i]
 
Registriert seit: Sep 2004
Ort: München
Beiträge: 5.588
Habs ä bissel optimiert, kann man aber sicher noch besser machen.
PHP-Code:
// y und x positon der Uhr einstellen
var ypos 0;
var 
xpos 600;
var 
swfbreite 800;
var 
swfhoehe 400;
//erstellen der querlinie
_root.createEmptyMovieClip ("linielang"200);
with _root.linielang ){
    
lineStyle );
    
moveTo 025 ypos);
    
lineTo swfbreite25 ypos);
}
// erstellen des "zeigers"
_root.createEmptyMovieClip ("liniekurz"201);
with _root.liniekurz ){
    
lineStyle 10x00ff00100);
    
moveTo xpos20 ypos);
    
lineTo xpos50 ypos);
}


//    Datums und Uhranzeige
_root.createTextField("uhr"205xpos 100ypos 5020050);
_root.createTextField("datum"206xpos 100ypos 8020050);
var 
meinFormat = new TextFormat();
meinFormat.font "Verdana";
meinFormat.size 20;
meinFormat.align "center";
meinFormat.color 0xff00ff;
        
uhr.setNewTextFormatmeinFormat );
datum.setNewTextFormatmeinFormat );


var 
uhrFormat = new TextFormat();
uhrFormat.font "Verdana";
uhrFormat.size 10;
uhrFormat.align "center";
uhrFormat.color 0x000000;
        
        
function 
counter() {
    
clearInterval countId );
    
akdate = new Date();
    
jahrjetzt      akdate.getFullYear();
    
monatjetzt     akdate.getMonth() + 1;
    
tagjetzt     akdate.getDay();
    
stundejetzt  akdate.getHours();
    
minutejetzt     akdate.getMinutes();
    
sekundejetzt akdate.getSeconds();    
    if ( 
sekundejetzt == drawNew();
    if( 
sekundejetzt 10 sekundejetzt "0" sekundejetzt;
    if( 
minutejetzt  10 minutejetzt  "0" minutejetzt;
    if( 
stundejetzt  10 stundejetzt  "0" stundejetzt;
    if( 
tagjetzt     10 tagjetzt     "0" tagjetzt;
    if( 
monatjetzt   10 monatjetzt   "0" monatjetzt;
        
    
uhr.text stundejetzt ":" minutejetzt ":" sekundejetzt;
    
datum.text tagjetzt "." monatjetzt "." jahrjetzt;  
    
countId setIntervalcounter1000);
}

function 
drawNew(){    
    for (var 
= -1515i++) {
        
//erstellen der Textfelder mit Zeitangaben
        
xpos minutejetzt 60;
        
stundejetzt i;
        
+= ( 24 ) ? -24 : ( ) ? 24 0;
        
_root.createTextField("feld" ii100ypos200100);
        
_root["feld"+i].setNewTextFormatuhrFormat );
        
_root["feld"+i].text = ( >= 10 ) ? ":00" : ( 10 ) ? "0" ":00" x;
                
        
//erstellen der linien
        
_root.createEmptyMovieClip ("linie" i50);
        
with _root"linie" ] ){
            
lineStyle );
            
moveTo a20 ypos);
            
lineTo a30 ypos);
            
lineStyle );
            
+= 30;
            
moveTo a22 ypos);
            
lineTo a28 ypos);
            
lineStyle );
            
-= 15;
            
moveTo a23 ypos);
            
lineTo a27 ypos);
            
lineStyle );
            
-= 30;
            
moveTo a23 ypos);
            
lineTo a27 ypos);
        }
    } 
}

//aktivierung des counters
counter();
drawNew(); 
__________________
ERROR: Signature is too large

Geändert von rendner[i] (14-05-2005 um 17:21 Uhr)
rendner[i] ist offline   Mit Zitat antworten
Alt 14-05-2005, 19:35   #4 (permalink)
Neuer User
 
Registriert seit: Dec 2002
Ort: Köln
Beiträge: 51
Danke für die Kritik...
Wie gesagt nur so kann man lernen..

Das alles jede sec. neu berechnet wird ist mir auch aufgefallen, hatte aber noch nicht denn richtigen Lösungsansatz. Das hat sich ja jetzt erledigt.
Bei "null" sec. neu zu zeichnen ist eine saubere Lösung.

Ich wollte das script einsetzen für so eine Art Stundenplan. Mann kann sehen was als nächstes kommt. MC,s die sich an der Zeitleiste mit bewegen.

Und in den MC,s die restzeit (bzw.Zeitdifferenz) zum nächsten ereignis !
Jerud ist offline   Mit Zitat antworten
Alt 15-05-2005, 11:24   #5 (permalink)
Neuer User
 
Registriert seit: Dec 2002
Ort: Köln
Beiträge: 51
Einen kleinen bug hab ich selbst endeckt, da bräuchte ich doch mal etwas hilfe von euch. Ich finde denn Fehler nicht.

Wenn die Systemzeit unter 10 uhr ist wird die Zeitangaben in der ersten Minute als "string" ausgegeben und nicht als Zahl. Ich komm aber nicht dahinter wieso.

PHP-Code:
stundejetzt i
        
+= ( 24 ) ? -24 : ( ) ? 24 0
        
_root.createTextField("feld" ii100ypos200100); 
        
_root["feld"+i].setNewTextFormatuhrFormat ); 
        
_root["feld"+i].text = ( >= 10 ) ? ":00" : ( 10 ) ? "0" ":00" x
Jerud ist offline   Mit Zitat antworten
Alt 15-05-2005, 11:31   #6 (permalink)
voidboy
 
Benutzerbild von rendner[i]
 
Registriert seit: Sep 2004
Ort: München
Beiträge: 5.588
Zitat:
Zitat von Jerud
Wenn die Systemzeit unter 10 uhr ist wird die Zeitangaben in der ersten Minute als "string" ausgegeben und nicht als Zahl.
??
Der Text eines Textfeldes ist ein String und keine Zahl.
Und was soll der Fehler sein?
__________________
ERROR: Signature is too large
rendner[i] ist offline   Mit Zitat antworten
Alt 15-05-2005, 11:41   #7 (permalink)
Neuer User
 
Registriert seit: Dec 2002
Ort: Köln
Beiträge: 51
ok.
Die Berechnung der Uhrzeit vor dem Zeiger ist ja Stundejetzt(z.B 9) - 1 wäre dann nach Adam Riese 08:00. Das Textfeld zeigt aber an " 09-1:00".
Aber nur wenn die Zeit kleiner 10 ist. bei 14 - 1 zeigt das textfeld 13:00 an...so soll es auch sein.
Aber komischerweise nur in der ersten minute. Bei "null sec" wird die Berechnung neu gestartet. dann stimmt es auf einmal.
Jerud ist offline   Mit Zitat antworten
Alt 15-05-2005, 13:50   #8 (permalink)
Neuer User
 
Registriert seit: Dec 2002
Ort: Köln
Beiträge: 51
HAt sich erledigt...habe den Fehler gefunden script habe ich wie folgt geändert.
PHP-Code:
    if( stundejetzt  10 stunjetzt  "0" stundejetzt
    if( 
stundejetzt >= 10stunjetzt stundejetzt
    
if( tagjetzt     10 tagjetzt     "0" tagjetzt
    if( 
monatjetzt   10 monatjetzt   "0" monatjetzt
         
    
uhr.text stunjetzt ":" minutejetzt ":" sekundejetzt
jetzt funktioniert es auch mit einer Zeit unter 10 Uhr.
Jerud ist offline   Mit Zitat antworten
Alt 18-05-2005, 11:37   #9 (permalink)
Neuer User
 
Registriert seit: Dec 2002
Ort: Köln
Beiträge: 51
Wm 2006

Falls es mal jemand sehen möchte wie es aussieht...hier
Die Idee dieser Datei ist es, zur WM 2006 alle Spiele auf einer Zeitleiste zu präsentieren, nicht kommerziel sondern nur aus "Spaß an der Freude".
Der Mensch braucht eben eine Aufgabe um etwas zu lernen. Ich habe ja noch über ein Jahr Zeit dies zu verwirklichen.
Natürlich bin ich für jede hilfe Dankebar.

Gruß jerud
Jerud 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 an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 07:50 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele