fonction exécutée qu'une seule fois (alors qu'elle devrait pas)
salut.
J'ai un bout de code dans lequel j'ai une fonction qui ne s'exécute qu'une seule fois. Voici le code
Code:
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
|
trackball.drag.onPress=function() {
_global.dragging = true;
_global.oldX = _xmouse;
_global.oldY = _ymouse;
}
//visualisation
trackball.onEnterFrame = function() {
trace("drag"+_global.dragging);
for (j=1; j<_global.tableau.length; j++) {
switch (_global.tableau[j][0]) {
case "viewer_prix" :
var_nom = "elt"+j+"_";
nom_fg="filg"+j+"_";
nom_fd="fild"+j+"_";
const_rect(_global.tableau[j], var_nom,nom_fg,nom_fd);
break;
case "viewer_priy" :
var_nom = "elt"+j+"_";
nom_fg="filg"+j+"_";
nom_fd="fild"+j+"_";
const_rect(_global.tableau[j], var_nom,nom_fg,nom_fd);
break;
}}} |
Il entre ds la fonction const_rect que voici :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
const_rect = function (tab, nom,nom_fg,nom_fd) {
trace("test"+_global.dragging);
const_fil(tab[3], nom_fg,"0x000000");
const_fil(tab[4], nom_fd,"0x000000");
if (_global.dragging==true) {
dx = _xmouse-_global.oldX;
dy = _ymouse-_global.oldY;
_global.oldX = _xmouse;
_global.oldY = _ymouse;
trace("zob");
trace("dx"+dx);
groupRotateX(tab[1],0- dy);
groupRotateX(tab[2],0- dy);
groupRotateY(tab[1],0- dx);
groupRotateY(tab[2],0- dx);
}
} |
après recherches plus poussées, il apparaît que
[code]
for (j=1; j<_global.tableau.length; j++)
tourne en boucle grace au onEnterFrame (vérifié avec des trace de j). C'est ce que je veux qu'il fasse, ca tombe bien! Par contre avec le meme systeme de trace, j'ai vérifié qu'il n'executait la fonction
Code:
1 2
|
const_rect(_global.tableau[j], var_nom,nom_fg,nom_fd); |
qu'une seule fois, et c'est là que le bas blesse. Je sais pas pourquoi!!!! qqu'un a-t'il une idée svp?
De plus, j'aimerais savoir si c'est possible de ne déclencher la boucle for qu'a partir du moment ou ma souris est au dessus du clip trackball. Si qqu'un a des pistes pour m'aider, je lui en serai gré, merci