PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Javascript Funktionen stoppen


cyberartist
2003-01-06, 15:50:53
Hallo!


Ich habe schonwieder ein Problem.

Ich möchte eine Schleife bei Erreichen eines Wertes beenden, damit Systemressourcen geschont werden und weil ich danach weitere Funktionen ausführen möchte, bei denen die aufrufende stören würde, wenn sie weiterliefe.

Derzeit setze ich über eine IF Abfrage den Wert der horizontalen Position einer ins Bild fliegenden Tabelle, bei Erreichen von 25px auf 25. Die Funktion läuft aber ständig weiter.

Die Funktion wird über SetTimeout("animateit()",1) aufgerufen.

Laut Selfhtml wird mit diesem Befehl eine Funktion ständig mit dem angegebenen Interwall ausgeführt.

Ich möchte diesen Aufruf aber stoppen, wenn sich die Tabelle auf Position 25px befindet.

Der dafür zuständige Befehl ist clearTimeout, aber es funktioniert einfach nicht.


<script>
<!--
ns4 = (document.layers)? true:false
ie4 = (document.all)? true:false
function init() {
if(ns4){
anim = document.broom;
}
else
if (ie4) {
anim = broom.style;
}
animateit()
}
function animateit() {
if(ns4||ie4){
anim.left = parseInt(anim.left)-8;
if (parseInt(anim.left) <=25)
{ clearTimeout("animateit()",1) }
setTimeout("animateit()",1);
}
}
//-->
</script>






mfg

cyberartist

cyberartist
2003-01-06, 17:53:30
Mein Ansatz war nicht ganz in Ordnung. Nun gehts :

<script>
<!--
ns4 = (document.layers)? true:false
ie4 = (document.all)? true:false
function init() {
if(ns4){
anim = document.broom;
}
else
if (ie4) {
anim = broom.style;
}
aktiv = setInterval("animateit()",1)
}
function animateit() {
if(ns4||ie4){
anim.left = parseInt(anim.left)-20;
if (parseInt(anim.left) <=25) { clearInterval(aktiv); anim.left=25 }
}
}
//-->
</script>

Tommes
2003-01-06, 22:45:58
Wenn du Schleifen nur solange Laufen lassen wilsst, bist ein gewisser Wert erreicht ist, nimm while Schleifen.

cyberartist
2003-01-07, 00:59:05
Originally posted by Tommes
Wenn du Schleifen nur solange Laufen lassen wilsst, bist ein gewisser Wert erreicht ist, nimm while Schleifen.

Das habe ich schon probiert, aber da hat sich nichts bewegt.
Erst das iterative subtrahieren vom aktuellen style positions Wert
bracht die Tabelle in Bewegung.

Läuft nun alles perfekt.

Zum anschauen : http://www.digitalfantasyart.de


mfg

Cyberartist