Diego,
Sobre el lenguaje: Los eventos no podemos evitar que ocurran. Así, cuando hacemos Click sobre un MC, se produce un evento Click sobre el MC y otro evento Click sobre el stage -si tuviéramos un MC interior al anterior y pincháramos dentro, se producirían tres eventos Click-
Otra cosa es dónde añadamos el listener. En el caso de un MC en un stage, lo podemos añadir sobre el MC o sobre el stage (o sobre los dos -cosa que NO se hace CASI NUNCA-
Vamos a añadirlo a los dos para ver qué pasa
Código ActionScript :
mimc.addEventListener(MouseEvent.CLICK,mimcOnClick)
stage.addEventListener(MouseEvent.CLICK,stageOnClick)
function mimcOnClick(e:MouseEvent){
trace("From mimcOnClick :"+e.target+":"+e.currentTarget)
}
function stageOnClick(e:MouseEvent){
trace("From stageOnClick:"+e.target+":"+e.currentTarget)
}
(*)Podríamos haber usado una única función
Vemos que "currentTarget" es siempre donde se ha añadido el listener y "target" donde se ha hecho click.
¿para qué nos puede servir esto?
Imagina que, en tu caso, lugar de una imagen, tienes 100. Podríamos añadir un listener a cada imagen o un único listener al stage. Añadir un único listener tiene la ventaja de que ocupa menos memoria (y de que no nos tenemos que encargar de eliminarlo, si eliminamos el objeto)
El otro caso típico es un menú con muchos botones dentro. en lugar de añadir tantos lísteners como botones tenemos en el menú, podemos darle propiedad "name" a nuestros botones y añadir un único listener al menú, luego en la función, preguntando por el e.target, si es distinto de currentTarget -esto es, hemos pulsado un botón y no dentro del menú pero no en un botón- podremos hacer una cosa y otra dependiendo de e.target.name, y podremos "draguearlo" si no es así.
NOTA:Ni idea de lo de mouseChildren -estoy todavía con Flash 9, y sí que me funcionaba el mouseEnabled-