invalidación de validación flexible (ciclo de vida del componente)

Todavía estoy confundido con Validación e Invalidación del componente en Flex. ¿Alguien podría darme una comparación simple sobre lo que puede hacer la validación, qué no puede hacer la invalidación y viceversa?

Realmente aprecio su ayuda.

Gracias.

preguntado el 03 de mayo de 12 a las 15:05

¿Qué hiciste para investigar el tema antes de confundirte? Hay mucha documentación, publicaciones de blog, presentaciones y muestras sobre este tema si realiza una búsqueda. ¿Qué tal si abre un código de Flex Framework, coloca puntos de interrupción y lo resuelve? -

1 Respuestas

Aunque estoy de acuerdo con los comentarios, esto está bastante bien documentado. Creo que te estás perdiendo la relación general entre los métodos de "invalidación" y "validación". Básicamente, cada vez que realiza una llamada para invalidar algo, ya sea la lista de visualización, el tamaño o las propiedades, todo lo que hace es decirle que establezca un indicador booleano para uno de esos (cada vez que modifica una propiedad que modificará cualquiera de estos tres llamará al método de invalidación apropiado, como invalidateProperties cuando se llame a set width). Cuando ocurra el siguiente cuadro de entrada/renderización, verificará las banderas y, si alguna de ellas está configurada como inválida, llamará al método de validación correspondiente (updateDisplayList, commitProperties, medida).

Para ver el código por sí mismo en FB/Eclipse presione Ctrl+Shift+T y levante UIComponent, presione Ctrl+O una vez que UIComponent.as esté abierto y escriba validar Ahora puede ver que el cuerpo del método es de 1 línea y hay un buen comentario de ASDoc allí explicando lo que hace. Mejor aún, verás que llama a validateClient en un ILayoutManager, abre LayoutManager (Ctrl+Shift+T de nuevo) y mira validarClient, explica básicamente lo que hago aquí.

Creo que aquí es de donde vienes porque yo también estuve en ese bote una vez, sin entender la relación entre actualizar una propiedad y afectar a sus hermanos/padres/hijos, pero es realmente clave para reducir la carga de procesamiento ya que una propiedad puede ser modificada varias veces entre actualizaciones de fotogramas y no es necesario volver a calcular todo lo que lo rodea hasta que se vuelva a dibujar.

El problema es que a veces desea modificar una propiedad e inmediatamente (es decir, en la ejecución de las siguientes líneas) puede ver cómo su lado afecta haber modificado otras partes del diseño, en este caso puede llamar a validateNow() después de modificar un propiedad que lo obliga a actualizar inmediatamente todo eso, incluso si puede suceder varias veces antes de que ocurra un redibujado. Por lo general, esta no es una buena práctica, ya que generalmente significa que se desperdicia tiempo de CPU no deseado, pero a veces es la opción más fácil.

contestado el 03 de mayo de 12 a las 22:05

No hay problema, me alegro de haber llegado al punto correctamente. Cualquiera puede dejarme saber si indiqué información errónea, pero traté de respaldar mi respuesta con la fuente tanto como pude. - Shaunhusain

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.