Dupliquer
Dupliquer un clip
En AS3, la méthode duplicateMovieClip() n'existe plus...
Elle est remplacée par le mot clé "new" qui permet de créer une copie de l'instance du clip comme ceci :
var mc1:MovieClip = new MovieClip();
On utilise ensuite la méthode addChild(mc1) qui permet d'ajouter ce clip sur la scène. Une simple boucle sera ensuite utilisée pour dupliquer le clip.
Mettre un clip sur la scène (AS3)
var mc1:MovieClip = new MovieClip();
mc1.graphics.beginFill(0xff0000); // remplissage
mc1.graphics.drawRect(0, 0, 100, 50); // forme carré
this.addChild(mc1); //affichage
var mc1:MovieClip = new MovieClip();
mc1.graphics.beginFill(0xff0000); // remplissage
mc1.graphics.drawRect(0, 0, 100, 50); // forme carré
this.addChild(mc1); //affichage
Même exemple avec 2 clips (AS3)
var mc1:MovieClip = new MovieClip();
var mc2:MovieClip = new MovieClip();
mc2.graphics.beginFill(0xff0000); // remplissage
mc2.graphics.drawRect(0, 0, 100, 50); // forme carré
addChild(mc2); // affiche mc2
mc2.addChild(mc1); // mc1 dans mc2
mc2.x = 100; // positionnement de mc2
var mc1:MovieClip = new MovieClip();
var mc2:MovieClip = new MovieClip();
mc2.graphics.beginFill(0xff0000); // remplissage
mc2.graphics.drawRect(0, 0, 100, 50); // forme carré
addChild(mc2); // affiche mc2
mc2.addChild(mc1); // mc1 dans mc2
mc2.x = 100; // positionnement de mc2
Duplication de carré (AS3)
for (var i:int = 0; i < 9; i++) {
var mc1:MovieClip = new MovieClip();
mc1.graphics.beginFill(0xff0000); // remplissage
mc1.graphics.drawRect(0, 0, 100, 50); // forme carré
this.addChild(mc1); //affichage
mc1.x = mc1.x + i;
mc1.y = mc1.y + i;
}
for (var i:int = 0; i < 9; i++) {
var mc1:MovieClip = new MovieClip();
mc1.graphics.beginFill(0xff0000); // remplissage
mc1.graphics.drawRect(0, 0, 100, 50); // forme carré
this.addChild(mc1); //affichage
mc1.x = mc1.x + i;
mc1.y = mc1.y + i;
}
Pour afficher le nombre de clip, on peut utiliser la méthode numChildren :
trace (numChildren);
Et pour faire référence à chaque clip, nous pouvons ajouter le code suivant :
trace (getChildAt(i)); dans une autre boucle for.
Autre cas avec un Array:
Autre exemple de duplication de carré (AS3)
var container:Sprite = new Sprite();
addChild(container);
var posi:int = 0;
var TableauMenu:Array = new Array();
for (var i:int=0; i<3; i++) {
var instance:Sprite = new Sprite();
instance.graphics.beginFill(0xFF0000);
instance.graphics.drawRect(0,0,150,20);
TableauMenu[i] = instance;
instance.x = i * 160; // décale les boutons
container.addChild(instance);
}
var container:Sprite = new Sprite();
addChild(container);
var posi:int = 0;
var TableauMenu:Array = new Array();
for (var i:int=0; i<3; i++) {
var instance:Sprite = new Sprite();
instance.graphics.beginFill(0xFF0000);
instance.graphics.drawRect(0,0,150,20);
TableauMenu[i] = instance;
instance.x = i * 160; // décale les boutons
container.addChild(instance);
}
Note: Pour activer le mode bouton: instance.buttonMode=true; et pour accéder aux écouteurs ou aurtes: TableauMenu[1 ou 2,3]