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
