2011-06-15 11 views
6

En el ciclo de vida de componentes de UI, escuché eventos de validación e invalidación. Por favor explícame sobre estos eventos en breve. ¿Qué hace el método updateDisplayList() en ese ciclo de vida? Por favor explícame en breve si es posible. Gracias de antemano.UI Ciclo de vida de los componentes en Flex

Respuesta

15

El Flex Componente ciclo de vida es un conjunto de métodos y eventos que Flex utiliza para configurar componentes. En nuestros propios componentes, que extienden la clase UIComponent, podemos escuchar estos eventos o anular estos métodos para hacer cosas que son específicas de nuestro componente.

Añadiré que updateDisplayList() es un método, no un evento, en caso de que sea una confusión.

Estos son los principales métodos reemplazables:

  • createChildren(): Esto se utiliza para crear los hijos de un componente.
  • commitProperties(): Este es un método de comodín. Lo usa para coordinar múltiples cambios de propiedad en un solo lugar. Para qué lo usa depende del componente que está creando y las propiedades.
  • medida(): Esto se usa para establecer la altura y el ancho "ideal" del componente, basado en los elementos secundarios. Establece la Height y Height width.
  • updateDisplayList(): Esto se utiliza para hacer cualquier cosa relacionada con la visualización, más comúnmente posicionar y dimensionar los elementos secundarios del componente.

Todos estos métodos se ejecutarán durante la creación del componente inicial. Sin embargo, tres de estos métodos - commitProperties(), measure() y updateDisplayList() - pueden configurarse para ejecutarse durante el próximo evento de renderizado. Para prepararlos para la marcha, simplemente invalidar ellos utilizando el método de invalidación apropiado:

  • invalidateProperties() fuerzas commitProperties() para volver a ejecutar.
  • invalidateSize() fuerzas measure() a rerun.
  • invalidateDisplayList() fuerza updateDisplayList() para volver a ejecutar.

La frecuencia con la que se desencadena un evento de representación depende de la velocidad de fotogramas de la aplicación.Creo que la tasa de cuadros por defecto de Flex es de 24 fotogramas por segundo, por lo que hay un evento de renderizado cada 1/24 de segundo.

Definí el ciclo de vida del componente como una colección de métodos y eventos. Por lo tanto, estos son los eventos, en el orden que el fuego:

  • preinitialize
  • inicializar
  • childAdd
  • updateComplete
  • creationComplete

updateComplete se disparará después de cada evento de render, Creo. Pero los otros son parte de la creación del componente.

You should read the Flex documentation on this

The Spark Component Lifecycle añade diferentes ganchos para acomodar el enfoque en dos clases; con una clase para lógica de negocios y otra para desollar. Pero, hasta el momento, extiende el ciclo de vida del componente MX/Halo.

+0

Gracias a ton @ www.Flextras.com. Realmente es una explicación muy simple que cualquiera puede entender. –

+0

¡Me alegra ayudar! El componente Lifecycle es donde enfoco la mayor parte del desarrollo de Flextras (ya que construir componentes es lo que hacemos) – JeffryHouser

1

En resumen:

  • invalidación marca propiedades para su validación. La validación solo ocurrirá en el siguiente ciclo de renderizado, de modo que si establece el valor de una propiedad 5 veces mientras tanto, solo se comprometerá efectivamente el último valor. (Le da un mejor rendimiento)
  • validación: si una propiedad se caracterizó será actualizado en los commitProperties() método
  • updateDisplayList() se llama después de la validación: los nuevos valores de las propiedades se pueden utilizar ahora para cambiar la vista de acuerdo con esos valores

una buena versión más larga: http://www.dlgsoftware.com/primers/Primer_on_Flex3_Component_Lifecycle.htm

Cuestiones relacionadas