probleme avec boucle for - Flash/ActionScript - Programmation
Marsh Posté le 12-09-2007 à 15:54:57
hello, y'a personne que ça interpelle !! j'comprends toujours pas ce qui se passe, malgré des heures de recherche !!!
Marsh Posté le 13-09-2007 à 13:10:36
Tu devrais mettre ton code entre balise déjà, çaserait un peu plus clair.
Sinon j'ai l'impression que ton probléme vient de la dernière partie :
this._x=posX;
this._y=posY;
Puisque si ta zone est zone_2 par exemple, ta boucle va continuer en 3 et 4 et ainsi replacer ta carte. (il me semble)
La solution la plus simple à mon avis serait de remplacer ton for par un while qui s'arrête ainsi dès que la condition est remplit (logique, pas besoin de continuer une fois que la carte est placé)
Marsh Posté le 13-09-2007 à 14:22:18
merci Zed,
pour la lisibilité du code, j'y avais bien pensé mais j'sais comment on fait !! désolé !!
après des heures de reflexion... je suis arrivé à la même conclusion, remplacer la boucle for
pour l'instant, je m'en suis sorti avec de multiples if et else if sans boucle,
c'est beaucoup de code mais ça marche !! ça va y'a que 4 zones a tester.
bon developpement à tous
Marsh Posté le 13-09-2007 à 14:34:02
Le while est fait pour ça justement, éviter les successions de if. Regardes-y ...
Marsh Posté le 13-09-2007 à 17:15:51
Y'a aucune raison d'utiliser eval ici
Marsh Posté le 13-09-2007 à 19:51:38
hello Shinuza
moi aussi j'suis étonné mais si il est pas là, ma variable est égale à :
_root.monMC._x et non une valeur comme 45 ou 352 ...
merci de ton soutien
Marsh Posté le 14-09-2007 à 09:48:03
Code :
|
T'as essayé ça?
Marsh Posté le 14-09-2007 à 10:10:35
dans mes souvenirs oui, mais je vais ressayer !! le code sera plus propre, plus lisible. merci
Marsh Posté le 08-09-2007 à 18:57:25
bonjour à tous,
je galère sur une boucle for
eh oui... c'est pas croyable mais je m'en sors pas !!
j'explique : je développe un jeu de carte et je veux placer la carte que je déplace sur l'emplacement d'un de mes 4 clips cible
j'ai donc créée une petite boucle de "4 pas" qui test quelle cible se trouve sous la carte et si c'est bien une cible, déposer ma carte (stopdrag)
etlui atribuer les coordonnées de ma cible.
ça marche qu'avec la dernière cible ("zone_4" dans mon script) même si mon code dectecte bien les autres cibles !!
voilà le code situé dans chaque image du le clip carte contenant toutes les figures (1,2,3,4...):
stop();
this.onEnterFrame = function() {
if (_root.cartactive != this._name){ // detection hit (carte/zone) et incrémentation des variables situées dans image de la timeline
cible="_root."+_root.cartactive;
if (this.hitTest(cible)) {
_root.zonactive=this._name;
}
}
}
this.onPress = function() {
startDrag(this);
posX = this._x; // coordonnées de départ de la carte
posY = this._y;
}
this.onRelease = function() {
stopDrag();
for(t=1; t<5; t++){ // boucle de 1 à 4 pour tester mes 4 zones cible
if(_root.zonactive=="zone_"+t){ // test pour connaitre la zone située sous la carte que je dépose
zoneX=eval("_root."+_root.zonactive)._x; // recupération coordonnées de la zone détectée
zoneY=eval("_root."+_root.zonactive)._y;
this._x=zoneX; // placement de la carte (this) à l'emplacement de la zone détectée
this._y=zoneY;
// trace (_root.zonactive); // trace permettant vérification
// trace (zoneX);trace (zoneY);
}else{
this._x=posX; // replacement de la carte a son emplacement d'origine
this._y=posY;
}
}
}
ce code voit chaque zone lors du release mais ne place la carte qu'avec la zone_4
Help!!! j'y comprends plus rien, j'ai tout essayé et rien trouvé sur le net !!!