Bug incopréhension ciblage

Bug incopréhension ciblage - Flash/ActionScript - Programmation

Marsh Posté le 14-04-2007 à 15:55:36    

Voila après pas mal de jours(mois/années) passés à bosser mon Action script, j'ai encore parfois des problèmes avec le ciblage des clips.
Du coup j'ai fait quelque tests, pour me rendre compte du fonctionnement exact de la chose.
Et j'ai l'impression d'avoir trouvé des incohérences dans Flash. Ou alors j'ai des lacunes dans un domaine qui devrait être évident.

 

J'explique : dans un boulot que je suis en train de faire, je charge un Xml et génere 1 clip+1 champ texte par entrée. Le but est que quand je clic dessus, le XML se recharge et regénére les clips avec en théorie les même noms et caractéristiques.
Quand je le fais, au moment de refresh il me recrée des clips par dessus sans enlever lees anciens.
Bref, je pare le probléme en faisant un removeMovieClip avant et c'est bon. Mais du coup j'ai voulu faire un test ...

 

Voici un code tout bête :

Code :
  1. var pif : MovieClip = this.createEmptyMovieClip ("pif" , this.getNextHighestDepth ());
  2. var txt : TextField = pif.createTextField ("txt", 1 , 0, 0, 100, 100);
  3. txt.text = "hop";
  4. var pif : MovieClip = this.createEmptyMovieClip ("pif" , this.getNextHighestDepth ());
  5. var txt : TextField = pif.createTextField ("txt", 1 , 0, 0, 100, 100);
  6. txt.text = "broum";
  7. trace(txt.text)
  8. trace(pif.txt.text)
 

Avec ma logique à moi, je me dis que le pif va remplacer le pif. Le fait qu'il soit à 1 depth supérieur ne change rien.
en fait si ! Il m'affiche donc 2 textefield entre meler avec hop et boum.

 

Du coup je regarde dans le debugueur et je vois un clip pic.txt avec comme valeur .text = "hop" et sur le root, une variable/objet txt qui contient toutes les propriètés d'un champ texte dont .text = "boum" !  :heink: Mais mes 2 traces me sortent "boum".  :cry:  Donc mon "hop" est perdu dans l'espace est inacessible ?

 

C'est ça que je comprend pas.

 

Je sais que dans l'aide il est marqué qu'un clip remplace un autre lorsqu'il a la même valeur de profondeur et nom pas le même nom. Mais du coup ça rend le ciblage par nom d'occurence complétement hazardeux !

 

Et si c'est vrai, pk il ne me crée pas 2 clips avec le même nom mais qui ne ce génent pas puisqu'ils ont un depth différent :??:

 

Si jamais vous avez une idée, ça serait cool d'en parler ...  :sol:


Message édité par Zedlefou le 14-04-2007 à 15:56:18

---------------
Jeu de simulation Boursière - Version BETA - https://www.facebook.com/wildstocks
Reply

Marsh Posté le 14-04-2007 à 15:55:36   

Reply

Marsh Posté le 15-04-2007 à 11:59:10    

le pif retourné par la méthode createEmptyMovieClip() n'est une occurrence, c'est une référence (RTFM).
 
tu donnes des noms d'occurrences identiques, auxquels tu accèdes par des références identiques.
 
à partir de là, franchement c'est free-style, le Flash Player devrait exploser, il le fait pas, il est déjà gentil.


Message édité par craps_youpla le 15-04-2007 à 12:01:22
Reply

Marsh Posté le 15-04-2007 à 21:57:53    

Ah ok ! Ben j'avais pas fait le discernement en lisant le manuel ...
Enfin pour moi, la tolérence aux incohérences c'est un peu la porte ouverte à toutes les fenêtres ... :/
C'est dommage que Flash ne soit pas un peu plus strict. Au niveau pédagogique ça aiderait bien.


---------------
Jeu de simulation Boursière - Version BETA - https://www.facebook.com/wildstocks
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed