Simuler de thread en Javascript

Signaler
Messages postés
10
Date d'inscription
jeudi 18 mars 2004
Statut
Membre
Dernière intervention
19 avril 2004
-
Messages postés
1
Date d'inscription
mardi 1 mars 2005
Statut
Membre
Dernière intervention
3 juillet 2008
-
Bonjour,

j'ai créé une fonction qui permet de faire tourner une image.
elle se rappelle elle-même avec in setTimeout qui simule la vitesse.
function tourne(img){
n=document.getElementById(img);
//Code
setTimeout(tourne(img),10);
}

si je n'ai qu'une image cela tourne bien.
si je veux faire tourner 2 images en parallèle, seule la dernière tourne.

function start(){
tourne('img1');
tourne('img2');
}

est-il possible en javascript d'alterner l'une ou l'autre image?

merci

petitstagiaire

5 réponses

Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
34
Bonjour
tout dépend de comment est
concue la function appellée.
il faut y mémoriser tous les éléments
pour continuer correctement.
setTimeout(fonction(imageà traiter,état actuel))
le pire : dupliquer la fonction vers fonction1.
Cordialement. Bul.
Messages postés
10
Date d'inscription
jeudi 18 mars 2004
Statut
Membre
Dernière intervention
19 avril 2004

cher Bul,
meme en dupliquant ma fonction en l'appellant tourne2, il ne prend en compte que le dernier appel :
tourne2('img2');
et ignore tourne('img1') ou la stoppe après une itération
Messages postés
890
Date d'inscription
lundi 8 avril 2002
Statut
Membre
Dernière intervention
29 juillet 2004
12
essayes ca si tu l as pas deja essayé
function tourne(img){
n=document.getElementById(img);
//Code
}
function start()
{
setInterval("tourne('img1')",10);
setInterval("tourne('img2')",10);
}

Duss
Messages postés
10
Date d'inscription
jeudi 18 mars 2004
Statut
Membre
Dernière intervention
19 avril 2004

j'ai déjà essayé mais en plus de ne bouger que la 2nde image, elle bouge n'importe comment.
merci quand même

je vais peut etre etre obligé de refaire completement mon script.
je continue à chercher

petitstagiaire
Messages postés
1
Date d'inscription
mardi 1 mars 2005
Statut
Membre
Dernière intervention
3 juillet 2008

Bonjour,
Essaye ce code :
--------------------------------------------------------------------
var timerIDs = new Array(10);
var pos = 0;

function tourne(img, p){
n = document.getElementById(img);
//Code
clearTimeout(timerIDs[p]);
}

function start()
{
timerIDs[pos] = setInterval("tourne('img1', pos)",10);
pos = (pos+1)%10;
timerIDs[pos] = setInterval("tourne('img2', pos)",10);
(pos+1)%10;
}
--------------------------------------------------------------------

wasoft