Cuando estent una clase de un clip de película que contiene otros objetos (MovieClip, TextField, etc ...) no puede ser "listo" en el constructor. Esto sucede especialmente cuando se utilizan componentes MovieClip otros o ampliado (controles) de Flash. Para resolver el problema sólo tiene que utilizar el evento onLoad heredado de la clase misma. Por ejemplo, imagine que tiene un clip de película que contiene un TextField (interna objeto estático visual en Flash) y un objeto TextInput (inserta los componentes del panel de control) y desea establecer una propiedad en el constructor de nuestra clase MyClass.
Creamos un símbolo e insertar en el interior del objeto TextField (llamémosle text_txt) es el objeto TextInput (textinput_txt). Asociamos este símbolo para una clase que amplía MovieClip, llame a nuestra clase MyClass. Lo que tenemos es que durante el constructor de nuestra clase MyClass estos dos controles se inicializan. Si tratamos de usar un código como este:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | / / controls . TextInput ; importación mx controles TextInput..; / / MovieClip { clase MyClass se extiende MovieClip { / / text_txt : TextField ; privado text_txt var: TextField ; textinput_txt : TextInput ; privado textinput_txt var: TextInput; / / MyClass function () { "MiaClasse::costruttore" ) ; trace ("MyClass:: constructor"); / / = "Ciao" ; . text_txt text = "Hola"; = "Ciao" ; . textinput_txt text = "Hola"; / / } } |
¿Qué otteremo sólo controlará la inicialización del campo de texto! Pero si tratamos de utilizar el evento onLoad heredado de la superclase MovieClip:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | / / controls . TextInput ; importación mx controles TextInput..; / / MovieClip { clase MyClass se extiende MovieClip { / / text_txt : TextField ; privado text_txt var: TextField ; textinput_txt : TextInput ; privado textinput_txt var: TextInput; / / MyClass function () { "MiaClasse::costruttore" ) ; trace ("MyClass:: constructor"); / / = "Ciao" ; . text_txt text = "Hola"; / / onLoad = _onLoad; } / / _onLoad ( ) { _onLoad función privada () { = "Ciao" ; . textinput_txt text = "Hola"; } } |
En este caso la cadena "Hola" será visible en el TextField que se encuentra en el TextInput. se preferite) utilizzata per eseguire tutte le inizializzazioni del caso, comprese quelle che normalmente inseriremo – con successo – nel costruttore. Una regla general, por lo tanto, cuando usted tiene los componentes y otros "derivados" MovieClip, sería la de conectar siempre en el constructor de un puntero a una función privada _onLoad() (o init() si lo prefiere) que se utiliza para llevar a cabo toda la inicialización necesaria incluidos los que normalmente inserto - con éxito - en el constructor.










Es evidente que el mismo es válido para el evento unload ()
[...] La solución propuesta en flash: cómo inicializar componentes en el constructor de una clase, por ejemplo, los resultados en ActionScript 3.0 es la siguiente: Actionscript texto sin formato: [...]