Muy buenas navidades a todos.
Estoy probando el uso de la clase EventDispatcher con Flash 8, y me
he encontrado con un comportamiento "raro" de Flash a la hora de llamar
a los constructores. Tengo un par de MC en la biblioteca a los que les
he asignado un par de clases (A y B). A cada uno de ellos le he agregado
el EventDispatcher para poder crear mis eventos particulares. La clase A
compone a la clase B, o para que nos entendamos, el mc A de la
biblioteca tiene una instancia de B dentro (B es un botón complejo). Lo
lógico es que cuando yo cree una instancia de A (por código mediante un
attachMovie), flash llame al constructor de B al pintarlo en pantalla, y
después llame al constructor de A. No lo hace. El constructor de B
parece que es llamado (no lo he mirado muy en profundidad) cuando
termina la ejecución de la función donde está el attachMovie de A. Esto
me da dolores de cabeza, porque yo llamo a
EventDispatcher.initialize(this) en el constructor de la clase B. Como
el constructor no se ejecuta hasta que a Flash le de por ahí, en el
constructor de A no tengo manera de agregarle un delegado al evento de
B, que se queda huérfano para la posteridad.
La solución que he tomado es instanciar B desde el constructor de A
con un attachMovie, en vez de tenerlo añadido previamente en el interfaz
gráfico. A mi me igual hacerlo así, pero el diseñador se me va a volver
un poco loco.
No he probado a llamar a EventDispatcher.initialize(B) desde el
constructor de A sacándolo de B, porque, a parte de feo, tendría que
cambiar código de otro lado.
¿Puedo ponerme a echar sapos y culebras por la boca, o esto tiene
una solución evidente que yo no he visto o desconozco?
Un saludo y muchas gracias.
-----------------------------------------------------
ASNativos
www.5dms.com
subscripciones/desubscripciones
http://asnativos.5dms.com
-----------------------------------------------------