Bonjour,
Pour une petite animation (imaginez des lumières qui s'allument aléatoirement), j'utilise plusieurs settimeout contenant des setinterval. Les setinterval appellent la fonction qui gère la variation de alpha. En faisant plusieurs appels successifs, ça fonctionne, voir le code ci-dessous.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 setTimeout('setInterval("loadText(1)",50)',500); setTimeout('setInterval("loadText(2)",50)',1000); setTimeout('setInterval("loadText(3)",50)',1500);
Seulement, si cette méthode fonctionne lorsqu'il n'y a pas beaucoup de lumières à gérer, au bout d'un moment, un boucle serait bien utile. Seulement, toutes mes tentatives restent infructueuses.
J'ai bien pensé à utiliser quelque chose du genre
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 for(...m...) { setTimeout(function(){myinterval(m);}, 500*m); } function myinterval(myvar) { setInterval(function(){loadText(myvar);},50) }
mais dans ce cas, la variable m du for (mettons m<=5) va rester constante (m=6).
Chose significative, si je fais un alert, pour chaque fonction de la variable m transmise, j'ai la bonne valeur qui s'affiche. Voir le code suivant :
Je n'arrive pas à surmonter ce problème. J'ai bien vu des cas où il semblait conseillé d'utiliser clearInterval mais je ne vois pas comment l'utiliser dans mon cas qui me fait penser à une tentative de multithread... Seulement, s'il s'agit bien de multithread, alors mon expérience est trop tenue pour m'en sortir sans aide...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 for(...m...) { alert(m); setTimeout(function(){myinterval(m);},500*m); } function myinterval(myvar) { alert(myvar) setInterval(function(){loadText(myvar);}, 50); } //+ un alert dans loadText
Merci.
Partager