Ir a la documentación de Adobe, me di cuenta de un resumen muy interesante que habla sobre el ciclo de ejecución y creación de cada uno de los componentes de nuestra aplicación, es sorprendente cómo todos y cada uno de botón que se añade a un contenedor de una docena de procedimientos hasta que se desencadenó el evento creationComplete. Para aquellos que ya han creado / componente a través de una secuencia de comandos de acción ampliado ya sabe a qué me refiero, pero aún así poner la explicación.
Estoy hablando sólo del proceso de añadir un botón como un niño a un recipiente (caja) con
el simple código:
1: / / Crear un cuadro, un botón, establecer la etiqueta y añadir como niños 2: var boxContainer: Box = new Box (); 3: 4: var b: Botón Botón = new () 5: 6: b.label = "Enviar"; 7: 8: boxContainer.addChild (b); El flex, haga lo siguiente:
1. Se llama el fabricante de componentes (nuevo cuadro y luego botón Nuevo)
2. Llamados los setter (b.label =) y actualizado todo el componente (y, a menudo, están llamados a actualizar los métodos para definir la totalidad del diseño: invalidateProperties (), invalidateSize (), o invalidateDisplayList ())
3. Añade como un niño (hijo) de la caja. En este caso, el flex hace más de la obra, ejecutando el siguiente orden:
4. Define la propiedad de la matriz componente para hacer referencia a su "contenedor".
5. Calcula y establece el estilo / "estilo" de todo el componente.
6. Disparar preinitialize el caso del componente.
7. Llama el método createChildren () del componente.
8. Llama a los métodos invalidateProperties (), invalidateSize (), y invalidateDisplayList () a la fuerza para ser despedido / Llame a los métodos commitProperties (), medida (), o updateDisplayList () en el próximo evento de entrega. La única excepción a estos eventos es que el flex medida no requiere el método () cuando el "usuario / programador" define la altura y la anchura del componente.
9. Disparar el caso de inicializar el componente. En este punto todos los Niños (para niños), el componente se inicializa, pero el componente todavía no ha sido debidamente definido por su tamaño, transformados o su diseño. Este evento se puede utilizar para definir y aplicar los procedimientos de componente extra antes de que se procesa por completo.
10. ChildAdd disparar en el caso de que el "padre" / "padre".
11. Disparar inicializar el caso de su componente "padre" / "padre".
12. Durante el próximo evento de entrega el flex hace las siguientes acciones:
- - Llame a los métodos en el siguiente orden:
- commitProperties ();
- medida ();
- layoutChrome ();
- updateDisplayList ();
- -- Por último se activa en caso updateComplete componente.
13. El flex, entonces este proceso también puede desencadenar eventos de la prestación (hacer) si los métodos commitProperties (), medida (), o updateDisplayList () se aplican / llamados por los métodos invalidateProperties (), invalidateSize (), o invalidateDisplayList ().
14. Después de que el último evento que se llama entrega, el flex realiza las siguientes acciones:
- - Coloque el componente visible (. Visible = true;).
- - Dispara en el caso de creationComplete componente. El componente está diseñado y procesado para el diseño. Este evento se activa sólo una vez y sólo cuando el componente se crea.
- - Dispara en el caso de updateComplete componente, este evento se desencadena cuando las opciones se cambian los componentes, tales como diseño, posición, tamaño o cualquier cambio en las características visuales.
La mayoría de los trabajos de configuración, definición, y la prestación de un componente es que este se añade a un recipiente (método addChild ()), ya que mientras que el componente no se agrega a un contenedor, el flex no puede tener su tamaño , Establecer la propiedad "en línea" / "heredar" o dibujar en la pantalla.
Entender estos pasos son esenciales para conocer las propiedades y las operaciones que se llevan a cabo en el establecimiento de un componente. Nos ayudan a comprender mejor por qué a veces tenemos algunos errores en nuestro código y para comprender el proceso de creación de un componente, que es muy útil para la creación de ellos para mí y / o ampliación de nuestro propio componente.
Artículo original aquí (EN)
Abrazar.
Este artículo está disponible en PDF para descargar.










4 Comentarios
Chico, como usted descubrió todo esto (pregunta, que no acento) ...
=)
Ved Hola! Yo estaba desesperado con un error que se tuvo que crear un componente, y no me siento tan a gusto en el tratamiento de estos componentes, pricipalmente para tratar con ellos en una "libraryProject" He intentado encontrar más información acerca de cómo funciona la aplicación y, a continuación, nada como navegar por la documentación de la adobe estaba allí me encontré con esto, y reflexionar sobre el siguiente enlace:
http://livedocs.adobe.com/flex/3/html/help.html?content=ascomponents_advanced_2.html # 203434
titulado:
"Sobre el ciclo de vida componente Instantiation"
Para mí personalmente ayudó mucho, porque era perderse en la cabeza con un estúpido error ...
Ved abrazo!
Un día yo todavía creo que ds algunas líneas que usted screveu Mario ...
Y hay Ved? belleza?
Abrazar
Hola, los comentarios de Mario como de inflexión pub! Belleza Villas? El camarero: enviar más una cerveza fría!
=))