2009-01-12 5 views
6

Significado. . . He visto casos en los que he vinculado componentes a un [Datablent] [Bindable]. Cuando actualicé los datos en el proveedor de datos, el componente no refleja el cambio de inmediato. ¿Tengo que hacer algo para actualizar los datos? ¿Qué evento hace que un componente actualice sus datos?¿Qué hace la etiqueta Flex [Bindable]?

Respuesta

11

Esto es algo excesivo, pero si usted está realmente interesado en lo que sucede bajo el capó cuando se agrega la etiqueta [Bindable], os recomiendo echarle un vistazo Buceo de Michael Labriola en el enlace de datos de Aguas sesión de 360 ​​| Flex !San Jose. Es, de lejos, la presentación más profunda sobre este tema que encontrarás.

Para verlo tendrá que descargar Adobe Media Player (que se ejecuta en Adobe Air). Si tiene problemas para suscribirse a las sesiones 360 | Flex en Adobe Media Player, siga los consejos de Ted Patrick al his blog post.

Su presentación también se encuentra en Slideshare, pero no es ni mucho menos informativo o entretenido.

+2

Adobe ha vuelto a trabajar en su sección de Adobe TV, por lo que si desea evitar el problema con la instalación de Adobe Media Player, simplemente acceda a este enlace en la sección Adobe TV. Mucho más fácil :) – merlinc

+0

Los enlaces actuales parecen estar muertos/404. ¿Alguna idea de dónde podría encontrar una copia de este video? –

2

que dependería de lo que haya hecho con los datos. si aplicaste un filtro, de ser así necesitarás actualizar los datos. hiciste un tipo, si es así necesitarás actualizar los datos. Es su dataProvider una matriz, si es así, esto no hace vinculante, utilice un ArrayCollection.

Danos un ejemplo de qué es lo que no se está actualizando y deberíamos poder brindar ayuda específica.

1

Si usted está en perder el tiempo con el compilador de línea de comandos, puede utilizar la bandera compile.keep-generated-actionscript para ver el efecto de la adición de [Bindable] a una propiedad. Crear una clase llamada prueba de ActionScript simple y añadir una sola propiedad de cadena que puede unirse a ella y luego compilarlo como esto:

mxmlc -compiler.keep-generated-actionscript test.as

Esto creará una carpeta llamada "generada" que contiene toda la secuencia de comandos de acción adicional, que en este caso sería un único archivo llamado (probablemente) "_test-binding-generated.as".

Debería poder ver que la adición de la etiqueta enlazable solo crea un contenedor que implementa IEventDispatcher y distribuye un evento cuando se llama al colocador. Es esta envoltura que su componente estará escuchando.

Si su componente no refleja de inmediato el cambio en su pantalla, esto podría significar que tendrá que buscar en el código de actualización de ese componente. El control Tree es bastante notorio para este tipo de problema, principalmente porque la actualización puede ser costosa.

1

"Cuando una propiedad es el origen de una expresión de enlace de datos, Flex copia automáticamente el valor de la propiedad de origen a cualquier propiedad de destino cuando la propiedad de origen cambia. Para indicarle a Flex que realice la copia, debe usar [ Etiqueta de metadatos vinculable] para registrar la propiedad con Flex, y la propiedad de origen debe enviar un evento ".

+0

Fuente? por favor publique una url! – nalply

3

El capítulo 7 de la guía del desarrollador trata exactamente con esto. Te sugiero que lo leas.

Extracto:

Aunque los objetos de datos en bruto, tales como un matriz de cadenas u objetos, son envuelto en colecciones cuando se utiliza como el valor de una propiedad dataProvider , usando colecciones de forma explícita es una mejor práctica. Usando colecciones explícitamente asegura que los datos sincronización y proporciona datos tanto más simples y más sofisticados de acceso y manipulación de herramientas que están disponibles cuando se utiliza objetos primas directamente como proveedores de datos. Las colecciones también pueden proporcionar una interfaz consistente para acceder y administrar datos de diferentes tipos.

Véase también this acerca del enlace de datos y matrices

Cuestiones relacionadas