Ciao,
cerco di risponderti un passo alla volta... allora:
Visto che metti i 2 movieclip che dovranno rispondere all' evento click del mouse all' interno di un Movieclip contenitore assegnerei un nome alle istanze dei 2 Movieclip,
potrebbe servire a livello di codice..non si sa mai :
Codice:
....
mc.name="RectBig";
....
....
mcx.name="RectLittle";
...
...
abilito il buttonMode per i 2 movieclip :
Codice:
....
mc.name="RectBig";
mc.buttonMode = true;
....
....
mcx.name="RectLittle";
mcx.buttonMode = true;
...
...
infine creo una sola funzione listener per intercettare il click del mouse su i 2 movieclip
Codice:
....
mc.name="RectBig";
mc.buttonMode = true;
....
....
mcx.name="RectLittle";
mcx.buttonMode = true;
...
mc.addEventListener(MouseEvent.MOUSE_DOWN, pippo);
mcx.addEventListener(MouseEvent.MOUSE_DOWN, pippo);
...
Nella funzione listener pippo per sapere su quale movieclip è stato fatto click userò la proprietà name impostata prima
Ad esempio sfruttando la classe MouseEvent per sapere qual'è il target dell'evento.
Se scopro qual' è il nome del target dell'evento click saprò quale movieclick è stato selezionato, quindi:
Codice:
function pippo(e:MouseEvent):void {
switch (e.target.name) {
case "RectBig":
trace("Big Rect");
break;
case "RectLittle" :
trace("Little Rect");
break;
}
}
ecco il codice completo delle aggiunte :
Codice:
function addMc(n):void
{
var mcBox:MovieClip = addChild(new MovieClip ) as MovieClip;
var mc:MovieClip = new MovieClip();
var random_color:Number = Math.random() * 0xffffff;
mc.graphics.beginFill(random_color);
mc.graphics.drawRect(0, 0, 100, 100);
mc.graphics.endFill();
mc.buttonMode = true;
mc.name="RectBig";
mcBox.addChild(mc);
var mcx:MovieClip = new MovieClip();
mcx.graphics.beginFill(0xffffff);
mcx.graphics.drawRect(72, 2, 25, 25);
mcx.graphics.endFill();
mcx.buttonMode = true;
mcx.name="RectLittle";
mcBox.addChild(mcx);
mc.addEventListener(MouseEvent.MOUSE_DOWN, pippo);
mcx.addEventListener(MouseEvent.MOUSE_DOWN, pippo);
}
function pippo(e:MouseEvent):void {
switch (e.target.name) {
case "RectBig":
trace("Big Rect");
break;
case "RectLittle" :
trace("Little Rect");
break;
}
}
Segnalibri