Schleife abbrechen
TheInsomnius
- javascript
0 Antje Hofmann0 Joachim
Hallo Forum,
ich hab ein Script, das ein Object in einer Schleife langsam einblendet. Dies ist nur leider eine Endlosschleife, da der Aufruf der Funktion nicht zu stoppen scheint.
function spielover()
{
A = document.all.down.filters[0].opacity
if(A <= 100)
{
document.all.down.filters[0].opacity = (document.all.down.filters[0].opacity += 10);
document.all.down.filters[0].finishopacity = (document.all.down.filters[0].finishopacity += 10);
window.setTimeout("spielover()",200);
}
else
{}
}
spielover();
Nun müsste ich diese Schleife stoppen und nur bei mouseover leufen lassen, denn bei mouseout startet eine schleife mit der entgegengesetzten Funktion. Das Objekt wird ausgeblendet. Zur Zeit heben sich die beiden Funktionen aber gegenseitig auf.
Kann ich irgendwie denn neuen Funktionsstart in die Funktion stecken? Als ich das gemacht habe, bekam das objekt dann nach ablauf der Zeit schlagartig, gefolgt von einem Stack Overflow.
Ich danke für eure Hilfe
TheInsomnius
Hi TheInsomnius
versuche mal:
aktiv=window.setTimeout("spielover()",200);
Nun müsste ich diese Schleife stoppen und nur bei mouseover
zum stoppen: window.clearTimeout(aktiv)
leufen lassen, denn bei mouseout startet eine schleife mit der entgegengesetzten Funktion. Das Objekt wird ausgeblendet. Zur Zeit heben sich die beiden Funktionen aber gegenseitig auf.
Kann ich irgendwie denn neuen Funktionsstart in die Funktion stecken?
Versuche mal: onmouseouver="spielover();" onmouseot="stopspielover();"
Alternativ, packe alles in eine Funktion und wechsele nur die Richtung. Die Richtung kannst du ja dann mit + und - setzen.
Viele Grüße
Antje
Ich probier es mal aus, 1000 dank erstmal...
hi,
bau Dir doch eine Art "Schalter". Z. B. setzt onmouseover zunaechst eine globale variable: var schalter=1;
Bei Deiner Funktion baust Du dann eine if Abfrage ein:
if(schalter==1 && A <= 100){tu_was;setTimeout("tu_es_nochmal()",50);}
Gruesse Joachim