URL: https://www.overclockers.at/coding-stuff/flash_actionscript_movieclip_mit_countdown_122876/page_1 - zur Vollversion wechseln!
Also ich hab ein MovieClip mit 4 Frames, wo sich folgendes Script befindet:
Frame 1: nix (damit keine Variablen initalisiert werden)
Frame 2:
Frame 3:Code:_global.time; _global.date1; date1 = new Date(); time = 20;
Frame 4:Code:date2 = new Date(); if(time>0) { if(date2.getSeconds()>date1.getSeconds()) { time--; date1 = new Date(); } } else { _root.gotoAndPlay(21); }
Aus irgendeinem Grund bleibt das ganze aber manchmal völlig zufällig hängen (also bei keinem bestimmten Zählerstand), passiert ungefähr bei jedem 3. bis 4. Versuch (bis jetzt).Code:gotoandPlay(3);
hast schonmal debug laufen lassen und gschaut wo er genau hängen bleibt? hilft einem meist weiter. denk mal mit hängenbleiben meinst, dass er immer wieder auf frame3 zurückspringt, stimmts?
ah.. moment, i weiß schon... mei Script hat ja an fatalen Logikfehler... Sekunden werden ja nur von 0 bis 59 gezählt, also wenn eine der dates über 59 hinaus is, fängts ja wieder bei 0 an und dann wird die Bedingung um time--; auszuführen eine längere Zeit lang nicht true sein.
arrgl
Wie realisiert man so einen Countdown anders?
ich hab auch gar nicht recht kapiert, was du mit dem skript genau machen willst.
vielleicht hilft dir das tut weiter:
http://www.kirupa.com/developer/mx/countdown.htm
was genau magst du jetzt erreichen?
einfach eine einzige Variable bis 0 runterzählen lassen im Sekundentakt
Ja ich schau mir das mal an, aber das Beispiel dort is für meine Bedürfnisse schon viel zu kompliziert.
fps vom movieclip auf 1 stellen und pro frame eins abziehen? also immer timer-- und wieder auf den gleichen frame zurückspringen lassen?
einfacher gehts wohl kaum, denk ich mir.
naja, aber da dauerts dann ja auch scho 1 Sekunde, bis er auf den Frame springt, wo die Variablen initialisiert werden.
//obwohl... egal, ich mach's doch so
arr.. blödsinn, so funktioniert das (scheinbar) nicht... ich kann ja scheinbar nicht für den MovieClip andere FPS definieren, als für das FlashMovie, wo' drin is.
Zitat von Spikxarr.. blödsinn, so funktioniert das (scheinbar) nicht... ich kann ja scheinbar nicht für den MovieClip andere FPS definieren, als für das FlashMovie, wo' drin is.
achja stimmt, an getTime(); hätte ich ja eigentlich eh schon am Anfang mal gedacht
naja, werd' noch herumprobieren.
hoi!
wieso nicht einfach die zeit-variable mit den fps multiplizieren?
timer=20*21 /* sekunden * fps */
und dann immer -1 rechnen?
naja es würd so gehn, wenn das movie mit bsp 50fps läuft und du von 20 runterzählen willst, dann müsstest
a = 20*50
jedes frame a-1
und alle 50 frames immer die textausgabe aktualisieren mit a/50. (laienhaft gesagt)
würd auch gehn..
so hast dus ja gemeint, oder?
warum machst das über frames und ned mit setInterval? da kannsts auf millisekunde genau steuern.
schreibst dein code in eine funktion XY und mit
setInterval(XY, zeit in ms) kannst sie periodisch aufrufen und wenn fertig bist mit clearInterval wieder stoppen. steh eh schön in der hilfe.
ah, thxZitat von Umlüxwarum machst das über frames und ned mit setInterval? da kannsts auf millisekunde genau steuern.
schreibst dein code in eine funktion XY und mit
setInterval(XY, zeit in ms) kannst sie periodisch aufrufen und wenn fertig bist mit clearInterval wieder stoppen. steh eh schön in der hilfe.
so etwa:
Code:var time = 20; var timer; timer = setInterval(countdown,1000); stop(); function countdown() { if(time-- == 0) { clearInterval(timer); gotoAndPlay(20) } }
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025