Aloha.
Rapidement, une présentation, considérant qu'il s'agit de mon premier passage ici... Nicolas, aka Fazaam, 23 ans, Développeur de jeux vidéos indépendant, auto-entrepreneur, grand amateur d'energy drink et de trek en très haute montagne.
Je pratique le dév flash depuis maintenant pas mal d'années mais là, je dois avouer que j'ai rencontré quelque chose de nouveau, et que je meurs d'envie de le partager... (Et de le débugger, aussi, évidemment... Mais surtout de partager cette joie intense que me procure flash.)
Tout d'abord, ça commence avec un code particulièrement simple, dans le constructeur de mon Manager :
1 2 3 4 5
| this.researchButtons.push(this.addChild(new MC_Search_WindPump("Windpump", 1)));
this.researchButtons.push(this.addChild(new MC_Search_PurificationPlant("PurificationPlant", 1)));
[...]
this.researchButtons.push(this.addChild(new MC_Search_NuclearPlant("NuclearPlant", 3)));
this.researchButtons.push(this.addChild(new MC_Search_NuclearWaste("NuclearWaste", 3))); |
L'ensemble des constructeurs appelés ici héritent de la même classe et contiennent une seule et unique ligne, qui est la suivante :
super(pBuildingName, pTechLevel);
Jusque là, rien de très étrange.
Ensuite, toutes ces classes sont liés à des symboles de type MovieClip qui contiennent 2 layers, de chacun 4 frames.
Les liens sont bons, confirmés par flash, et revérifiés une bonne cinquantaine de fois à la main. (Depuis le temps, je fais plus confiance à flash.)
Là où ça devient marrant, c'est que sur les 8 constructeurs appelés, un seul affiche le movieclip auquel il est rattaché. Quelque soit :
- L'ordre
- Le positionnement du MC dans la librairie flash
- Le contenu du MC
Sachant, et c'est là que ça devient même hilarant... Que TOUTES les instances créées dans le constructeur du Manager (premier bout de code), subissent exactement le même traitement, puisque je ne fais des actions que sur une boucle for qui travaille sur la length de mon Array "researchButtons".
On notera également que le contenu des MC est un simple copier/coller du premier bouton qui, lui, marche à la perfection.
Bref, j'ai beau chercher, j'arrive pas à comprendre ce qui se passe.
A noter que j'ai essayé
- De changer le contenu du MC
- De refaire le mc from scratch
- De créer un nouveau mc dans le root du fla avec l'id de liaison
- De secouer la moitié de mes contacts pro, qui sont restés bloqués dessus
On notera aussi que dans les trace, il indique clairement que
- les 8 boutons sont créés
- ont des coordonnées différentes (pas de risque de superposition)
- que leur propriété .visible est à true.
- que leur width/height est parfaitement normale.
La classe manager ne comporte aucune méthode publique qui permettrait de modifier cet état de fait de l'extérieur, et rien ne le modifie de l'intérieur.
Aussi, j'ai essayé d'intégrer un autre MC du projet qui n'a rien à voir, il a très bien marché.
Bref, je sèche. Voir même, je me dessèche.
Si quelqu'un a de l'aide, déjà rencontré un problème similaire, une idée (même tarée, j'en suis là), une bouteille pour oublier ou une corde, je suis preneur.
Faz'
Partager