meumeu64
Messages postés12Date d'inscriptionmardi 22 janvier 2008StatutMembreDernière intervention29 octobre 2009
-
23 sept. 2009 à 12:09
meumeu64
Messages postés12Date d'inscriptionmardi 22 janvier 2008StatutMembreDernière intervention29 octobre 2009
-
24 sept. 2009 à 11:49
Bonjour à tous.
Je vous explique mon problème.
Je souhaite créer plusieurs clips dont j'incrémente le nom.
Je positionne ensuite mes clips les uns à la suite des autres.
Chacun de ces clips est composé de deux images clefs:
image 1: clip non actif.
image 2: clip actif.
je voudrais pouvoir ajouter une fonction une fonction simple qui me permet
de passer le clip sur lequel j'appuie à son image 2. C'est la que ce situe mon problème.
je n'arrive pas à trouver la bonne méthode qui me permet de cibler ces clips.
voici mon code:
var iMax=16;
var jMax=16;
var i=0;
var j=0;
var fond:Sprite=new Sprite();
function dessiner_carte() {
for (i=0; i<iMax; i++) {
for (j=0; j<jMax; j++) {
var btn:Bleu= new Bleu();
btn.name="btn"+i+j;
fond.addChild(btn);
MovieClip(fond.getChildByName("btn"+i+j)).buttonMode=true;
MovieClip(fond.getChildByName("btn"+i+j)).addEventListener(MouseEvent.MOUSE_DOWN,test);
btn.x=30*i+10;
btn.y=30*j+10;
}
}
}
function test(e:Event) {
MovieClip(fond.getChildByName("btn"+i+j)).gotoAndStop(2);
}
pegase31
Messages postés6138Date d'inscriptiondimanche 21 décembre 2003StatutModérateurDernière intervention 4 septembre 201312 23 sept. 2009 à 13:04
Comme je viens d'expliquer à la question précédente (le principe est le même) :
La meilleure solution est de placer les occurrences dans un tableau à l'aide d'un push et de les appeler directement dans ce tableau sans taper dans la liste d'affichage d'un DisplayObjectContainer.
C'est bien plus simple et moins contraignant question prog .. sans parler du temps CPU diminué.
meumeu64
Messages postés12Date d'inscriptionmardi 22 janvier 2008StatutMembreDernière intervention29 octobre 2009 23 sept. 2009 à 15:43
Re Peg',
J'ai fait fonctionner sans problème ta méthode seulement
dans le cas ou mon tableau ne présente qu'une seule dimension.
Voila le code qui pose problème:
for (var i=0; i<iMax; i++) {
for (var j=0; j<jMax; j++) {
var btn:Bleu = new Bleu();
tabOcu.push(btn);
fond.addChild(tabOcu[i][j]);
tabOcu[i][j].buttonMode=true;
btn.x=30*i+10;
btn.y=30*j+10;
tabOcu[i][j].addEventListener(MouseEvent.MOUSE_DOWN,clic);
}
stage.addChild(fond);
function clic(e:Event){
e.currentTarget.gotoAndStop(2);
}
Une autre question: est il possible avec cette méthode de rajouter un hittest
sur tabOcu[i][j] avec un autre clip?