[ JS ]Faire une pause pendant une fonction
Résolu
pols12
Messages postés
1143
Date d'inscription
Statut
Membre
Dernière intervention
-
remjie -
remjie -
Bonjour,
J'ai une fonction comme ceci :
Comment faire une pause ? J'ai lu que c'était impossible mais j'ai lu qu'on pouvait le faire avec JQuery.
C'est pour un programme personnel, donc aps grave si c'est aps aux normes... ;)
Merci!
J'ai une fonction comme ceci :
do{ switch fais une action en fonction de la valeur du switch J'aimerais faire une pause ici avant de redémarrer la boucle ! }while()
Comment faire une pause ? J'ai lu que c'était impossible mais j'ai lu qu'on pouvait le faire avec JQuery.
C'est pour un programme personnel, donc aps grave si c'est aps aux normes... ;)
Merci!
8 réponses
Salut.
Je ne suis pas certain d'avoir bien compris le problème.
Tu souhaites tout simplement exécuté le code contenu dans la boucle tous les x temps ?
Tu peux utiliser la fonction setInterval.
Par exemple :
Je ne suis pas certain d'avoir bien compris le problème.
Tu souhaites tout simplement exécuté le code contenu dans la boucle tous les x temps ?
Tu peux utiliser la fonction setInterval.
Par exemple :
setInterval(function() { switch(variable) { ... } }, 2000);
Il faudra utiliser setTimeout à la fin de la fonction.
Voilà un exemple :
Voilà un exemple :
var div; function boucle(vitesse) { var millisecondes = null; switch(vitesse) { case 'fast': millisecondes = 250; break; case 'slow': millisecondes = 1000; break; default: millisecondes = 500; break; } div.innerHTML += "Ligne ...<br>"; setTimeout(function() { boucle(vitesse); }, millisecondes); } window.onload = function() { div = document.getElementById('div'); boucle('slow'); };
C'est ainsi qu'il faudrait faire si tu ne souhaites pas utiliser une fonction anonyme :
https://developer.mozilla.org/fr/docs/Web/API/WindowOrWorkerGlobalScope/setTimeout
setTimeout(boucle, millisecondes, vitesse);
https://developer.mozilla.org/fr/docs/Web/API/WindowOrWorkerGlobalScope/setTimeout
essaie de faire une fonction pause comme ceci et dit moi si ca marche:
function pause()
{
while(1==1)
{
if (xxxxx) //la condition pour que la boucle s'arrete (pour quitter la pause)
{break;}
else { return -1; }
}
}
function pause()
{
while(1==1)
{
if (xxxxx) //la condition pour que la boucle s'arrete (pour quitter la pause)
{break;}
else { return -1; }
}
}
Oui, mais le problème avec settimeout, c'est qu'il a 2 paramètres : le temps, Ok. Mais aussi une fonction. C'est à dire que j'ai aps envi qu'il lance une fonction au bout de 2 secondes, mais qu'il reprenne là ou il en était avant la pause.
Mais je viens d'avoir une idée, en écrivant ca.
Si je fais une fonction pause() avec rien dedans, et que je mets un setTimeout(pause(),2000) à la fin du do, là ou je l'ai indiqué dans mon premier poste, ca marche ?
Merci !!
PS : Je teste tout de suite ! :P
Mais je viens d'avoir une idée, en écrivant ca.
Si je fais une fonction pause() avec rien dedans, et que je mets un setTimeout(pause(),2000) à la fin du do, là ou je l'ai indiqué dans mon premier poste, ca marche ?
Merci !!
PS : Je teste tout de suite ! :P
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Ha, revoilà un avion ! :D
Oui c'est ça. Mais je crois qu'il y a un problème. :S Je précise mon code :
Le setInterval, il va remettre à Zero maVariable à chaque fois, non ?
Merci !
Oui c'est ça. Mais je crois qu'il y a un problème. :S Je précise mon code :
function action() { var maVariable = 0; do { switch(maVariable) fais une action en fonction de la valeur du switch, qui change à chaque incrémentation de maVariable (chaque tour de boucle) maVariable++; } while ( maVariable < 11 ) }
Le setInterval, il va remettre à Zero maVariable à chaque fois, non ?
Merci !
Salut
J'ai enfin réussi !
Merci à Avion-f16
Code :
Merci encore ! :)
EDIT :
Finalement, j'ai encore un petit problème ! :(
Je voudrais modifier le temps de la pause en fonction de la valeure du switch.
C'est possible ?
J'ai créer une var temps_timer en global. Et j'ai mis ceci :
setInterval ( function(){ [...] }, temps_timer ) ;
Ca ne met aps d'erreur. Mais si dans le switch, je change la valeur de temps_timer, le setInterval ne la prend pas en compte et garde la valeur assigné lors de la déclaration. :(
Il y a un moyen pour que le setInterval prenne la VRAIE dernière valeur assigné à temps_timer ?
☼◄►►►↑↑■■■■==##-->···→{([/ Pols12 \])}←···<--##==■■■■↓↓◄◄◄►☼
J'ai enfin réussi !
Merci à Avion-f16
Code :
<script> var maVariable = 0; setInterval(function action() { switch(maVariable) fais une action en fonction de la valeur du switch, qui change à chaque incrémentation de maVariable. maVariable++; }, 2000); </script>
Merci encore ! :)
EDIT :
Finalement, j'ai encore un petit problème ! :(
Je voudrais modifier le temps de la pause en fonction de la valeure du switch.
C'est possible ?
J'ai créer une var temps_timer en global. Et j'ai mis ceci :
setInterval ( function(){ [...] }, temps_timer ) ;
Ca ne met aps d'erreur. Mais si dans le switch, je change la valeur de temps_timer, le setInterval ne la prend pas en compte et garde la valeur assigné lors de la déclaration. :(
Il y a un moyen pour que le setInterval prenne la VRAIE dernière valeur assigné à temps_timer ?
☼◄►►►↑↑■■■■==##-->···→{([/ Pols12 \])}←···<--##==■■■■↓↓◄◄◄►☼