Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
932 connectés 

  FORUM HardWare.fr
  Programmation
  Flash/ActionScript

  probleme avec boucle for

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

probleme avec boucle for

n°1609738
PioPioTe
Posté le 08-09-2007 à 18:57:25  profilanswer
 

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  !!!

mood
Publicité
Posté le 08-09-2007 à 18:57:25  profilanswer
 

n°1611077
PioPioTe
Posté le 12-09-2007 à 15:54:57  profilanswer
 

hello, y'a personne que ça interpelle !! j'comprends toujours pas ce qui se passe, malgré des heures de recherche !!!

n°1611339
Zedlefou
In cabbage we trust !
Posté le 13-09-2007 à 13:10:36  profilanswer
 

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é)


Message édité par Zedlefou le 13-09-2007 à 13:11:21

---------------
Jeu de simulation Boursière - Version BETA - https://www.facebook.com/wildstocks
n°1611379
PioPioTe
Posté le 13-09-2007 à 14:22:18  profilanswer
 

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

n°1611381
Zedlefou
In cabbage we trust !
Posté le 13-09-2007 à 14:34:02  profilanswer
 

Le while est fait pour ça justement, éviter les successions de if. Regardes-y ...


---------------
Jeu de simulation Boursière - Version BETA - https://www.facebook.com/wildstocks
n°1611440
PioPioTe
Posté le 13-09-2007 à 17:10:46  profilanswer
 

merci beaucoup m'sieur

n°1611442
Shinuza
This is unexecpected
Posté le 13-09-2007 à 17:15:51  profilanswer
 

Y'a aucune raison d'utiliser eval ici :o


---------------
Mains power can kill, and it will hurt the entire time you’re dying from it.
n°1611504
PioPioTe
Posté le 13-09-2007 à 19:51:38  profilanswer
 

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

n°1611587
Shinuza
This is unexecpected
Posté le 14-09-2007 à 09:48:03  profilanswer
 

Code :
  1. _root[_root.zonactive]


 
T'as essayé ça?


---------------
Mains power can kill, and it will hurt the entire time you’re dying from it.
n°1611597
PioPioTe
Posté le 14-09-2007 à 10:10:35  profilanswer
 

dans mes souvenirs oui, mais je vais ressayer !! le code sera plus propre, plus lisible. merci


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Flash/ActionScript

  probleme avec boucle for

 

Sujets relatifs
problème boucle untilProblème boucle à droite!
[PHP] Problème de boucle et menu[aide] probleme de boucle
Problème de création de bouclesProbléme avec une boucle for
probleme de boucle dans Excel[MSSQL et PHP] Problème de boucle...
problème de boucle sur vbaprobleme de boucle while
Plus de sujets relatifs à : probleme avec boucle for


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR