Bonjour à tous,
Bon, sur ma scène, j'ai 5 boutons (clips) dans un conteneur monMenu et 5 clips dans la bibliothèque. Chaque bouton doit charger un clip dans un conteneurClip.
Déjà, j'avoue que ma méthode pour y arriver est absolument fumeuse !!!!
j'ai été obligé de créer un clip bidon(vide) pour le tab[0] = clip1 pour la correspondance entre mon tableau de clips et ma boucle for de boutons (qui veut pas de zéro). J'ai pioché des bouts de code ici et là, en essayant de comprendre puis en inventant carrément cette chose étrange... qui marche pour l'instant.
Mon souci est que j'aimerais que les clips appelés se remplacent les uns les autres au lieu de se superposer, mais comment faire un removeChild
quand on ne sait pas d'avance quel clip a été chargé ? et peut-on faire un removeChild et addChild d'un conteneur dans la même fonction ?
Voilà, n'hésitez pas à rigoler en voyant cette tentative d'une graphiste passant de l'AS2 à l'AS3, c'est pas grave car moi-même je m'amuse pas beaucoup (pour l'instant).
// les clips
var conteneurClip : MovieClip = new MovieClip;
conteneurClip.x = 110;
conteneurClip.y = 80;
addChild(conteneurClip);
var clip1 : MovieClip = new Clip1;
var clip2 : MovieClip = new Clip2;
conteneurClip.addChild(clip2); // ça c'est pour qu'il y en ai 1 clip en place tout de suite
var clip3 : MovieClip = new Clip3;
var clip4 : MovieClip = new Clip4;
var clip5 : MovieClip = new Clip5;
var clip6 : MovieClip = new Clip6;
var tab : Array = new Array ();
tab[0] = clip1;
tab[1] = clip2;
tab[2] = clip3;
tab[3] = clip4;
tab[4] = clip5;
tab[5] = clip6;
//les boutons qui sont déjà sur la scène
for (var i:uint = 1; i <= 5; i++)
{
var monBouton:MovieClip = monMenu["bouton_"+i];
monBouton.buttonMode = true;
monBouton.id=i;
monBouton.addEventListener(MouseEvent.MOUSE_OVER, boutonOver);
monBouton.addEventListener(MouseEvent.MOUSE_OUT, boutonOut);
monBouton.addEventListener(MouseEvent.MOUSE_UP, boutonRelache); // la fonction importante !
}
function boutonOver(event:MouseEvent):void
{
(event.currentTarget as MovieClip).gotoAndStop("s1");
}
function boutonOut(event:MouseEvent):void
{
(event.currentTarget as MovieClip).gotoAndStop("s2");
}
function boutonRelache(event:MouseEvent):void
{
var clipNum:MovieClip = event.currentTarget as MovieClip;
conteneurClip.addChild(tab[clipNum.id]);
trace (conteneurClip.numChildren);
}
Voilà ou j'en suis, à vos reflexions...
Amicalement
SV