Pb as3 duplication de clip [Résolu]

Signaler
Messages postés
619
Date d'inscription
mercredi 4 avril 2007
Statut
Membre
Dernière intervention
27 août 2010
-
cs_inaden
Messages postés
619
Date d'inscription
mercredi 4 avril 2007
Statut
Membre
Dernière intervention
27 août 2010
-
Bonjour,
voilà, j'essaie de passer à l'as3 mais... bref.
Voici le problème : je duplique une instance de clip de la bibliothèque à l'aide du code suivant :
var maBalle:Balle;
 
for ( var i:int = 0; i< 10; i++ ) {
    maBalle = new Balle();
    addChild( maBalle );
    maBalle.x = Math.random()*(stage.stageWidth - maBalle.width);
    maBalle.y = Math.random()*(stage.stageHeight - maBalle.height);
}
Et je voudrais créer un bouton qui puisse agir sur les occurence de mes clip :
monBouton.addEventListener ( MouseEvent.CLICK, clicBouton );

function clicBouton ( alfred:MouseEvent ):void {
    trace("hop");
}
Le problème c'est que je n'arrive pas à cibler mes clips, ni à leur donner un nom ni rien du tout. Donc comment faire pour nommer les clips dupliquer et pouvoir agir dessus.
J'ai essayer avec des trucs genre maBalle.name="balle"+i dans ma boucle, mais il m'envoie bouler quand j'essaie d'agir dessus, pourtant, si je trace maBalle.name j'obtiens bien balle0, balle1...
Quelqu'un peut-il m'aider.
Merci d'avance

Tout vient à qui sait attendre

5 réponses

Messages postés
619
Date d'inscription
mercredi 4 avril 2007
Statut
Membre
Dernière intervention
27 août 2010
2
J'AI TROUVÉ !!!! C'EST UNE GRANDE VICTOIRE POUR LES TRAVAILLEURS (qui soit dit en passant en ont bien besoin par les temps qui cours)

monBouton.addEventListener ( MouseEvent.CLICK, clicBouton );
var num:int;

function clicBouton ( alfred:MouseEvent ):void {
    removeChild(getChildByName("balle"+num));
    trace("hop");
    num++;
}
//var maBalle:MovieClip = new Balle();
var maBalle:Balle;
 
for ( var i:int = 0; i< 10; i++ ) {
    maBalle = new Balle();
    addChild( maBalle );
    maBalle.name="balle"+i;
    trace(maBalle.name);
    /*maBalle.x = Math.random()*stage.stageWidth; //peuvent sortir de la scène
    maBalle.y = Math.random()*stage.stageHeight; */
    maBalle.x = Math.random()*(stage.stageWidth - maBalle.width);
    maBalle.y = Math.random()*(stage.stageHeight - maBalle.height);
}

Puisse cela servir à certains d'entre vous.  
Tout vient à qui sait attendre
Messages postés
6146
Date d'inscription
dimanche 21 décembre 2003
Statut
Modérateur
Dernière intervention
4 septembre 2013
6
6 min entre la question et la solution ... pas mal ...

Peg'
Messages postés
619
Date d'inscription
mercredi 4 avril 2007
Statut
Membre
Dernière intervention
27 août 2010
2
Une illumination, mais je galère grave, j'ai l'impression d'être revenu 3 4 ans en arrière.
Je me sens vraiment paumé... y'a quelqu'un qui file des cours sur Paris ???

Tout vient à qui sait attendre
Messages postés
1
Date d'inscription
lundi 13 novembre 2006
Statut
Membre
Dernière intervention
13 janvier 2010

Salut, j'ai eu EXACTEMENT le même problème que toi et j'aurais aimé lire ton message avant de parcourir 12000 forums pour trouver la réponse...

Seulement je trouve que cette syntaxe est peu pratique, ce serait tellement plus simple de pouvoir avoir recours au bon vieux this["nomMC"+i]!! Donc si jamais t'as trouvé mieux que getChildbyName, fais moi signe :)

Sinon j'imagine que tu fais un casse-briques, non?
Messages postés
619
Date d'inscription
mercredi 4 avril 2007
Statut
Membre
Dernière intervention
27 août 2010
2
C'est sur, mais autre temps, autres moeurs !
Sinon, pas de casse brique, juste essayer de comprendre comment ça marche !


Tout vient à qui sait attendre