Hay algo que cambia mucho de AS.2 a AS.3 y es que los nombres de instancia (o la propiedad name de un MC) pierde TODO su sentido. Personalmente creo que se mantiene por un "deje romántico". Vale, es cierto que todavía podemos usar la función getChildByName("miMC"); pero hay algo que no marcha cuando lo usamos.
Imaginemos algo simple, un .fla en AS.3 con un MC en el escenario cuyo nombre de instancia es "mimc" y cuya Clase es "Mimc". AS.3 lo que hace realmente es algo como
Código :
var mimc:Mimc=new Mimc()
addChild(mimc)
Vamos, lo que tiene es una "
variable llamada mimc que hace referencia al MC". Al hacer el addChild es cierto que guarda de algún modo el string "mimc" para que podamos hacer un getChildByName, pero NO lo necesitamos. YA tenemos la variable. Es igual que, cuando en AS.2 hacíamos
Código :
//en AS.2
mimc_ref=mimc
//ya nos olvidamos de "mimc", sólo vamos a usar mimc_ref
mimc_ref._x=200 //que sería lo mismo que mimc._x=200
Evidentemente, cuando creamos los MCs o los Sprites mediante AS, no tenemos porqué darle nombre de instancia (o la propiedad name), ya que tenemos la variable.
Vale, he "engañado un poco". En AS.3 la idea es que la Clase de documento tenga definidas como variables TODOS los MCs que existan o puedan llegar a existir (en variables o en un Array) y que vayan a ser usados (cambiar su x, añadirle un evento...). Al principio incluso tendrán valor nulo, pero la idea es no controlar nunca un MC mediante su "name", sino mediante una variable que haga referencia a él (no sé si quedó claro)