Comunidad de diseño web y desarrollo en internet online

Problema con programa en FLEX

Citar            
MensajeEscrito el 20 Jul 2010 07:47 pm
Nunca he trabajado con el código generado automáticamente porque me parece demasiado "sucio" pero hasta donde conozco, las llamadas al servidor son asíncronas, no pasa igual que en php que puedes hacer el llamado a la bd y en la siguiente linea trabajar con el resultado, todas las llamadas deben disparar un evento que eventualmente activaría el listener que activa la función que procesa la información que llegó del servidor.

Según lo que veo, haces la llamada al php y un milisegundo después pides el valor de la variable, como aún no ha llegado nada, pues es undefined, luego, sin que lo sepas, llega la info y se asigna a la variable, cuando oprimes el botón por segunda vez, se vuelve a llamar al servidor y te muestra el valor que tenía la variable incluso antes de ese segundo llamado.

si no quieres enredarte tanto, supongo que podrías usar data binding en ese campo de texto, así se actualiza apenas llegue, pero no se como es el resto de tu código, igual hay otras formas de hacerlo.

Por Xyrer

628 de clabLevel

1 tutorial

Genero:Masculino  

Android App Development

chrome
Citar            
MensajeEscrito el 20 Jul 2010 09:35 pm
Es verdad eso que dices del código generado automáticamente. Si vas a hacer un programa sencillo, vale, pero si vas a hacer algo un poco más complicado, es mejor hacerlo todo a mano, porque luego gastas más tiempo en arreglarlo todo, que si lo hubieras hecho desde un principio por ti mismo.

Pongo aquí la solución por si le ayuda a alguien:

El problema de las llamadas asíncronas, se arreglan con la propiedad result del callresponder.
En la propiedad result escribimos la función a la que se llamará una vez que se haya recibido el resultado de la llamada asíncrona, de esta forma, en esa función ya podemos utilizar ese objeto.

Mi problema era un poco más complicado, porque yo no sólo tenía una función con una llamada a un callresponder, yo tenía una función, que realizaba una llamada, y ese resultado, se lo pasaba como parámetro a otra llamada a otro callresponder, además, la segunda llamada estaba dentro de un bucle for, controlado por una variable i, que era el índice del parámetro que recibía esta segunda llamada...
Esto lo he solucionado creando el token independientemente, sin callresponder ni nada.
Es un poco más complicado, así que si alguien tiene alguna vez el mismo problema, que lo diga y ya posteo la solución entera, que es bastante larga y liosa.

Un saludo.

Xyrer escribió:

Nunca he trabajado con el código generado automáticamente porque me parece demasiado "sucio" pero hasta donde conozco, las llamadas al servidor son asíncronas, no pasa igual que en php que puedes hacer el llamado a la bd y en la siguiente linea trabajar con el resultado, todas las llamadas deben disparar un evento que eventualmente activaría el listener que activa la función que procesa la información que llegó del servidor.

Según lo que veo, haces la llamada al php y un milisegundo después pides el valor de la variable, como aún no ha llegado nada, pues es undefined, luego, sin que lo sepas, llega la info y se asigna a la variable, cuando oprimes el botón por segunda vez, se vuelve a llamar al servidor y te muestra el valor que tenía la variable incluso antes de ese segundo llamado.

si no quieres enredarte tanto, supongo que podrías usar data binding en ese campo de texto, así se actualiza apenas llegue, pero no se como es el resto de tu código, igual hay otras formas de hacerlo.

Por titabruni

10 de clabLevel



 

firefox
Citar            
MensajeEscrito el 26 Jul 2010 11:40 pm
frk como mate soluciona muchos de esos problemas ya que es un gestor de eventos (en lo que se basa flex)
tanto para flex 3 y 4 esta suerte

Por xcom

Claber

530 de clabLevel



 

firefox
Citar            
MensajeEscrito el 27 Jul 2010 03:19 pm

xcom escribió:

frk como mate soluciona muchos de esos problemas ya que es un gestor de eventos (en lo que se basa flex)
tanto para flex 3 y 4 esta suerte

¿Puedes expresarte mejor? Gracias por tu ayuda.

Por titabruni

10 de clabLevel



 

safari
Citar            
MensajeEscrito el 27 Jul 2010 04:24 pm
utiliza mate

Por xcom

Claber

530 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.