Zurück   Flashforum > Flash > Flash Einsteiger

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 06-03-2006, 11:57   #1 (permalink)
Neuer User
 
Registriert seit: May 2003
Ort: Hamburg
Beiträge: 5
Flash countdown

Hallo.

zum Wochenstart hab ich gleich ein tolle Frage:
Ich hab ein großes Problem mit meinem Flash countdown. Er zählt zwar wunderbar runter, aber wenn er dann bei 0 angekommen ist, zählt er einfach weiter und spinnt dann total rum, anstatt bei 0 stehen zu bleiben. Woran kann das liegen?

Hier ist mein script:

jahr = 2006;
monat = 4;
tag = 20;
h = 0;

// Unser Date Objekt wird mit unserem Zieldatum initialisiert
// monat-1 weil Flash die Monate ab 0 Zählt
// Beispiel: Januar=0 Februar=1 usw. Dezember=11
ziel = new Date(jahr, monat, tag, h);

// Die function counter wird von ganz unten setInterval aufgerufen
function counter() {
// Unser neues Datumobjekt mit dem aktuellem Zeitdatum
akdate = new Date();
// Von unserm Zieldatum ziehen wir die aktuelle Zeit ab und lassen
// uns den Restwert als Sekunden zurückgeben, deswegen auch /1000
// 1000 sind 1000 Millisekunden = 1 Sekunde ;-)
difftime = Math.floor((ziel-akdate)/1000);
// Ganz normale Restwertrechnung
// Errechnet die Sekunden von difftime
sec = difftime%60;
minuten = Math.floor(difftime/60);
min = minuten%60;
stunden = Math.floor (minuten/60);
stu = stunden%24;
day = Math.floor(stunden/24);

// Überprüfung ob unser Wert kleiner 10 ist, wenn ja,
// wird eine 0 vorne hinzugefügt
day = (day<10) ? "0"+day : day;
stu = (stu<10) ? "0"+stu : stu;
min = (min<10) ? "0"+min : min;
sec = (sec<10) ? "0"+sec : sec;
// Wertebezeichnung wird hinzugefügt
sec = (sec == 1) ? sec+" Sekunde" : sec;
min = (min == 1) ? min+" Minute" : min;
stu = (stu == 1) ? stu+" Stunde" : stu;
day = (day == 1) ? day+" Tag" : day;

tage.text = day;
stun.text = stu;
minu.text = min;
seku.text = sec;

}
// Hier wird unsere function counter jede Sekunde aufgerufen
setInterval(counter, 1000);

Ich nicht wirklich Profi was Actionscript betrifft. Dieses Problem lässt mich gerade richtig verzweifeln.

Wer kann mir helfen? Ich wäre sahr dankbar.

Gruß und danke
maiks ist offline   Mit Zitat antworten
Alt 06-03-2006, 12:09   #2 (permalink)
no guts no glory
 
Benutzerbild von readme.txt
 
Registriert seit: May 2004
Ort: Nordhorn
Beiträge: 7.998
das intervall wird nirgendwo gelöscht, darum läuft das ewig weiter ...

du musst noch eine abfrage einbauen in der Richtung:

PHP-Code:
if(sec == && min == && stu == && day == 0) {
  
clearInterval(counter_int);
}

// Und das Intervall aufrufen mit:

counter_int setInterval(counter1000); 
__________________
Bitte keine Privaten Nachrichten mit Fragen, dazu ist das Forum selbst da. Danke.

'We live in an amazing, amazing world, and it's wasted on the crappiest generation of spoiled idiots.'
readme.txt ist offline   Mit Zitat antworten
Alt 06-03-2006, 12:34   #3 (permalink)
Neuer User
 
Registriert seit: May 2003
Ort: Hamburg
Beiträge: 5
Danke für die schnelle Antwort. Aber irgendwie funzt das immer noch nicht so richtig. das prinzip hinter dem script versteh ich, aber in der aussführung hapert es irgendwie.

Nach wie vor läuft die Uhr weiter.

Trotzdem danke.
maiks ist offline   Mit Zitat antworten
Alt 06-03-2006, 12:42   #4 (permalink)
no guts no glory
 
Benutzerbild von readme.txt
 
Registriert seit: May 2004
Ort: Nordhorn
Beiträge: 7.998
PHP-Code:
stop();

jahr 2006;
monat 2;
tag 6;
13;

// Unser Date Objekt wird mit unserem Zieldatum initialisiert
// monat-1 weil Flash die Monate ab 0 Zählt
// Beispiel: Januar=0 Februar=1 usw. Dezember=11
ziel = new Date(jahrmonattagh);

// Die function counter wird von ganz unten setInterval aufgerufen
function counter() {
// Unser neues Datumobjekt mit dem aktuellem Zeitdatum
akdate = new Date();
// Von unserm Zieldatum ziehen wir die aktuelle Zeit ab und lassen
// uns den Restwert als Sekunden zurückgeben, deswegen auch /1000
// 1000 sind 1000 Millisekunden = 1 Sekunde ;-)
difftime Math.floor((ziel-akdate)/1000);
// Ganz normale Restwertrechnung
// Errechnet die Sekunden von difftime
sec difftime%60;
minuten Math.floor(difftime/60);
min minuten%60;
stunden Math.floor (minuten/60);
stu stunden%24;
day Math.floor(stunden/24);

if(
sec && min && stu && day 0) {
// Überprüfung ob unser Wert kleiner 10 ist, wenn ja,
// wird eine 0 vorne hinzugefügt
day = (day<10) ? "0"+day day;
stu = (stu<10) ? "0"+stu stu;
min = (min<10) ? "0"+min min;
sec = (sec<10) ? "0"+sec sec;
// Wertebezeichnung wird hinzugefügt
sec = (sec == 1) ? sec+" Sekunde" sec;
min = (min == 1) ? min+" Minute" min;
stu = (stu == 1) ? stu+" Stunde" stu;
day = (day == 1) ? day+" Tag" day;

trace(day+" | "+stu+" | "+min+" | "+sec);
} else {
  
trace("countdown_ende");
  
clearInterval(count_int);
}
}
// Hier wird unsere function counter jede Sekunde aufgerufen
count_int setInterval(counter1000); 
so in etwa
__________________
Bitte keine Privaten Nachrichten mit Fragen, dazu ist das Forum selbst da. Danke.

'We live in an amazing, amazing world, and it's wasted on the crappiest generation of spoiled idiots.'
readme.txt ist offline   Mit Zitat antworten
Alt 06-03-2006, 12:52   #5 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Hallo!
Hier mal als Beispiel mit zusätzlichen Minuten. Würde heute um 13:55 klappen
PHP-Code:
jahr 2006;
monat 2;
tag 6;
13;
min 55;
function 
counter() {
    
ziel = new Date(jahrmonattaghmin);
    
trace(ziel);
    
trace(new Date());
    if (
ziel.toString() == new Date().toString()) {
        
clearInterval(counter_int);
        
trace("weg");
    }
}
counter_int setInterval(counter1000); 
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 06-03-2006, 12:59   #6 (permalink)
no guts no glory
 
Benutzerbild von readme.txt
 
Registriert seit: May 2004
Ort: Nordhorn
Beiträge: 7.998
angeber *g*
__________________
Bitte keine Privaten Nachrichten mit Fragen, dazu ist das Forum selbst da. Danke.

'We live in an amazing, amazing world, and it's wasted on the crappiest generation of spoiled idiots.'
readme.txt 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 01:19 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele