laufende Funktion ab- / anschalten
Mathias Beyer
- javascript
0 Kalle_B0 Mathias Beyer
0 Joachim0 Kalle_B0 Mathias Beyer0 Kalle_B
Hallo,
ich brauch eine funktion mit setTimeout die abrupt abgeschaltet werden kann und wieder angeschaltet. Ich habes wie folgt versucht.
function show() {
if (hint == 1) {
document.all.dreist.innerHTML = '<img src="3st_show.gif" height="340" width="300" alt="">'; };
};
function animation() {
var rnd = Math.floor(Math.random() * 8);
var rndT = Math.floor(Math.random() * 5000);
if ((rnd == 1) && (hint == 0)) {
document.all.dreist.innerHTML = '<img src="3st_blnk.gif" height="340" width="300" alt="">'; };
if ((rnd == 2) && (hint == 0)) {
document.all.dreist.innerHTML = '<img src="3st_clos.gif" height="340" width="300" alt="">'; };
if ((rnd == 3) && (hint == 0)) {
document.all.dreist.innerHTML = '<img src="3st_look.gif" height="340" width="300" alt="">'; };
if ((rnd == 4) && (hint == 0)) {
document.all.dreist.innerHTML = '<img src="3st_shak.gif" height="340" width="300" alt="">'; };
if ((rnd == 5) && (hint == 0)) {
document.all.dreist.innerHTML = '<img src="3st_hnds.gif" height="340" width="300" alt="">'; };
if ((rnd == 6) && (hint == 0)) {
document.all.dreist.innerHTML = '<img src="3st_slpt.gif" height="340" width="300" alt="">'; };
if ((rnd == 7) && (hint == 0)) {
document.all.dreist.innerHTML = '<img src="3st_susp.gif" height="340" width="300" alt="">'; };
if ((rnd == 8) && (hint == 0)) {
document.all.dreist.innerHTML = '<img src="3st_real.gif" height="340" width="300" alt="">'; };
window.setTimeout("animation()", rndT);
};
diese Funktion steht im head, kann also sofort ausgeführt werden, im body habe ich ein Event mit der variable hint, wenn also das event von statten geht soll die funktion mit setTimeout ausgeschaltet werden und die funktion mit hint angeschaltet und das widerholt.
Ich bin kläglich gescheitert. kann mir irgend jemand helfen
Hallo,
du suchst http://de.selfhtml.org/javascript/objekte/window.htm#clear_timeout@title=clearTimeOut ?
Kalle
Hallo,
du suchst http://de.selfhtml.org/javascript/objekte/window.htm#clear_timeout@title=clearTimeOut ?
Kalle
das wäre eine möglicher schritt zur Lösung aber ich benötige ja eine GIF animation im zufälligen wechle und die ich dann wann immer mir danach ist abrupr stoppen kann und wenn mir danacvh ist wieder anschalten kann in einem div container. Mit window muss die seite ständig neu geladen werden oder irre ich mich? ich bin nich sooo fit in JavaScript. Hast du eine andere Idee?
Mathias
Hi,
das wäre eine möglicher schritt zur Lösung aber ich benötige ja eine GIF animation im zufälligen wechle und die ich dann wann immer mir danach ist abrupr stoppen kann
Eine Gif-Animation kannst Du nicht stoppen. Was Du vorhast ist eine Javascript-Animation. Die wird via setTimout periodisch aufgerufen und kann so auch gestoppt werden.
Mit window muss die seite ständig neu geladen werden oder irre ich mich?
Du irrst. set/clearTimeout sind lediglich Methoden von window.
Gruesse, Joachim
meinte ich doch dass das eine JavaScript-Animation mit gifs ist. Bitte entschuldige, ich hab da was verwechselt. Ich wersuchen vie du es mir ewmpfolen hast. Wie schon gesagt ich bin kein meister der erklärung. Aufjedenfall Danke
»» Hallo,
»»
»» du suchst http://de.selfhtml.org/javascript/objekte/window.htm#clear_timeout@title=clearTimeOut ?
»»
»» Kalledas wäre eine möglicher schritt zur Lösung aber ich benötige ja eine GIF animation im zufälligen wechle und die ich dann wann immer mir danach ist abrupr stoppen kann
Ja, du stoppst sie, indem der Aufruf der function animation() mit clearTimeOut widerrufen wird.
und wenn mir danacvh ist wieder anschalten kann
Durch einamligen Aufruf der function animation() startest du wieder.
Mit window muss die seite ständig neu geladen werden oder irre ich mich?
Du irrst. Was soll beim Neuladen passieren?
Kalle
ich werde es versuchen und am clearTimeout herumbasteln. auf jedenfall danke nochmal.
Hi,
document.all.
mit dieser (veralteten und proprietären) Syntax wirst Du leider auch noch bei anderen Dingen scheitern. ansonsten wie Kalle schon sagt: clearTimeout ist Dein Freund.
Gruesse, Joachim
Hi,
»» document.all.
mit dieser (veralteten und proprietären) Syntax wirst Du leider auch noch bei anderen Dingen scheitern. ansonsten wie Kalle schon sagt: clearTimeout ist Dein Freund.Gruesse, Joachim
jaja, doch die seite oder der inhalt der image datei mmuss denke ich neu geladen werden, oder irre ich mich? Ich weis nicht wie gesagt ich bin nicht sooo fit in JavaScript. Das geht mit clearTimeout ohne das ich das neu laden muss?
function animation() {
var rnd = Math.floor(Math.random() * 8);
var rndT = Math.floor(Math.random() * 5000);
...
if ((rnd == 2) && (hint == 0)) {
document.all.dreist.innerHTML = '<img src="3st_clos.gif" height="340" width="300" alt="">'; };
...
window.setTimeout("animation()", rndT);
};
>
> diese Funktion steht im head, kann also sofort ausgeführt werden,
Verständnisfrage:
Wird ein setTimeout wirklich schon ausgeführt, wenn die Seite noch nicht fertig geladen ist?
Wenn das so wäre, sollte es gelegentlich einen Fehler geben. Nämlich dann, wenn rndT (die Zeit) so klein ist, dass document.all.dreist noch nicht verfügbar ist.
> im body habe ich ein Event mit der variable hint, wenn also das event von statten geht soll die funktion mit setTimeout ausgeschaltet werden
Funktion ausschalten? Du meinst, der setTimeout soll widerrufen werden?
> und die funktion mit hint angeschaltet und das widerholt.
Der Wert von hint hat lt. deinem Code keinen Einfluss auf setTimeout, sondern nur auf den Aufruf einer Grafik.
> Ich bin kläglich gescheitert. kann mir irgend jemand helfen
die funktion wechseltz ständig bilder in rndT zeit wenn die variable hint gleich 0 ist. hint ist eine globale variable also kann ich sie doch in funktionen verwenden weil eine globale variable ist. wenn hint gleich 1 ist dann stimmt die bedigung nicht mehr nun könnte ich mit einer anderen funktion die nur darauf wartet das hint gleich 1 ist angeschaltet werden. tut mir leid, ich bin im erklären nicht so ganz der meister. bitte entschuldige
die funktion wechseltz ständig bilder in rndT zeit wenn die variable hint gleich 0 ist. hint ist eine globale variable also kann ich sie doch in funktionen verwenden weil eine globale variable ist. wenn hint gleich 1 ist dann stimmt die bedigung nicht mehr nun könnte ich mit einer anderen funktion die nur darauf wartet das hint gleich 1 ist angeschaltet werden.
Du brauchst keine andere Funktion. Rufe den setTimeOut nur dann auf, wenn hint gleich 0 ist:
if ( hint == 0 ) window.setTimeout("animation()", rndT);