Bonjour,

je suis en train de découvrir la bibliothèque scriptAculous, mais j'ai plusieurs soucis.

La première, lorsque je fais un afterFinish, la fonction s’exécute avant l’exécution de l'animation alors que si j'ai bien compris, cela devrai se faire une fois fini.

La deuxième, je fais une boucle pour que l'image bouge tant qu'un tableau est rempli, mais cela me crée une boucle infinie. J'ai testé avec une boucle de dix incrémentation, et on dirai que les animations se font une fois la boucle finit.

Je vous donne me code, ça sera peut être un peu plus claire.


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
 
//permet de lancer la course
function depart()
{
	var calc=0;
	// while(tabrun.length>0)//tant que le tableau contient des joueurs, on continue la course// ne foncitonne pas
	// {
	// for(var j =0; j<100;j++) //fonctionne mais une fois la boucle terminée
	// {
		for(var i =0 ; i<tabrun.length;i++) //pour chaque personne on la fait bouger suivant un random
		{
			if(arriver(tabrun[i]))// si l'élément est arrivé alors on la supprime du tableau
				tabrun.splice(i,1);
			calc=Math.random()*100;
			bouger(tab[i],calc);
			// window.setTimeout(bouger(tab[i],calc),5000);
			//new Effect.Move(tabrun[i],{ x: calc, y: 0,queue:'end'});
		}
	// }
	// }
}
 
//Permet de faire bouger le l'element
function bouger(element,calc)
{
	new Effect.Move(element,{ x: calc, y: 0,queue:'end', afterFinish: arriver(element)});
}
 
// permet de vérifier sur l'élement est arrivé ou non => fonctionne
function arriver()
{
	//alert("test");
	var valeur =($(element).style.left).split("px");
	if(valeur[0]>=(document.body.offsetWidth-75))
		return true;
	return false;
}


Merci beaucoup pour votre aide.