Comunidad de diseño web y desarrollo en internet online

Problema de actualizacion usando funciones con RemoteObject

Citar            
MensajeEscrito el 09 Sep 2009 05:24 pm
Saludos a todos,
Tengo el siguiente problema y me gustaria contar con sus ideas para resolverlo:
Estoy trabajando con flex 3 y del lado del servidor con php; la comunicacion la garantizo con una libreria basada en amf y utilizo RemoteObject para la comunicacion.
El problema se centra en que cuando llamo una funcion del RemoteObject y me retorna la respuesta a la funcion definida en el result, no realiza las acciones pertinentes sino hasta que salga de la funcion en que esta. Haber si me explico un poco mas:
Este es el metodo de mi RemoteObject:

Código Flex :

<mx:method name="getDataInfo"  result="setDataInfo(event)" fault="faultListener(event)"/>


1. Llamo al metodo del RemoteObject

Código Flex :

miRemObj.getDataInfo(var1, var2);

2. Funcion Result del RemoteObject

Código Flex :

private function setDataInfo(event:ResultEvent):void 
{
    Alert.show("Entre");    
    mycadenaBw=event.result;
    var sleepTime:int = 10000;
    var startTime:int = getTimer();
    Alert.show("Empiezo "+startTime);
    //timer de espera 10 segundos
    while (true) 
   {
      if (getTimer() - startTime >= sleepTime) break;
   }
   Alert.show("Termino "+getTimer());
}

3. Conclusion: El timer es algo que necesito necesariamente. Cuando lanzo el metodo y me da respuesta se ejecuta la funcion setDataInfo; el lio esta en que ni los alert, ni la asignacion que tengo a la variable mycadenaBw se realizan hasta que no se termine de ejecutar toda la funcion setDataInfo incluyendo el timer.
El resultado que obtengo actualmente es: 10 segundos de espera, luego el alert "Entre", luego la asignacion, luego los demas alert.
El resultado que estoy esperando es: se despliegue el alert "Entre", luego asigne el valor a mycadenaBw, luego despliegue el alert "Empiezo xxxxxx" (donde xxxxxx es el valor del timer en ese momento), luego espere 10 segundos y luego me despliegue el alert "Termino xxxxxx" (donde xxxxxx sea el valor final del timer).

Estoy haciendo algo mal? es incoherente lo que estoy esperando?
agradezco cualquier ayuda e idea que me puedan brindar, seran muy bienvenidas, muchas gracias.
Att

Ricardo Gómez Cuervo

Por rgc

24 de clabLevel



 

firefox
Citar            
MensajeEscrito el 09 Sep 2009 06:17 pm
Forzar una espera con un loop de ese tamaño puede llevarte a un crash del plugin, usa la clase Timer para disparar lo que necesites, no claves el procesador en una función

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 14 Sep 2009 01:30 pm
Hola a todos,
Jorge, muchas gracias por tu atencion y colaboracion; efectivamente utilizando la clase Timer si funciono. Aunque aun no entiendo por que antes no funcionaba ahora si la aplicacion me responde segun lo presupuestado.
De nuevo muchas gracias por tu acostumbrada colaboracion.

Att
Ricardo Gómez Cuervo

Por rgc

24 de clabLevel



 

firefox

 

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