Vc esta usando o RemoteObject ? extende ele e monta uma fila onde vc
cada vez q fizer uma chamada coloca ela num array e vai retirando elas
na sequencia conforme for recebendo, fiz algo parecido pra trabalhar
com o amfphp ve se da uma luz:

classe de conexao:
package models
{
        import events.AmfResultEvent;
        import events.AmfStatusEvent;

        import flash.events.NetStatusEvent;
        import flash.events.SecurityErrorEvent;
        import flash.net.NetConnection;
        import flash.net.ObjectEncoding;
        import flash.net.Responder;

        import mx.managers.CursorManager;
        import mx.utils.ObjectUtil;
        import events.ProxyEvent;


        /**
         *
         * Classe para conexao com o AmfPHP
         *
         */
        public class AmfConnection extends NetConnection
        {
                //
------------------------------------------------------------------
                //
                // declaracao das propriedades
                //
                //
------------------------------------------------------------------

                private var responder:Responder;

                private var fila:Array = new Array();
                private var chamou:Boolean;

                //
------------------------------------------------------------------

                /**
                 * Construtor da classe
                 *
                 * @param url do servidor
                 * @param amf3 protocolo false = AMF0 ou true = AMF3
                 * @param args ... outros parametros
                 *
                 */
                public function AmfConnection(url:String = "", amf3:Boolean =
false, ... args)
                {
                        if (url != "")
                        {
                                connectURL(url, args);
                        }

                        setEncoding(amf3);

                        this.responder = new Responder(onRespResult, 
onRespFault);

                        this.addEventListener(NetStatusEvent.NET_STATUS, 
netStatus);
                        this.addEventListener(SecurityErrorEvent.SECURITY_ERROR,
netSecurityError);

                        this.chamou = true;
                }

                //
------------------------------------------------------------------
                //
                // metodos  publicos
                //
                //
------------------------------------------------------------------

                /**
                 * metodo para setar a url do servidor
                 *
                 * @param url
                 * @param args ... outros parametros
                 */
                public function connectURL(url:String, ... args):void
                {
                        args.unshift(url);
                        this.connect.apply(this, args);
                }

                /**
                 * metodo para setar a codificacao do protocolo amf
                 *
                 * @param amf3 protocolo true = AMF3 ou false AMF0
                 */
                public function setEncoding(amf3:Boolean):void
                {
                        if (amf3)
                        {
                                this.objectEncoding = ObjectEncoding.AMF3;
                        }
                        else
                        {
                                this.objectEncoding = ObjectEncoding.AMF0;
                        }
                }


                /**
                 * metodo para autenticacao de acesso as classes no amfphp 1.2
                 *
                 * @param usuario
                 * @param senha
                 */
                public function setCredentials(usuario:String, 
senha:String):void
                {
                        super.addHeader("Credentials", false, {userid:usuario,
password:senha});
                }

                /**
                 * metodo para selecionar o servico
                 *
                 * @param classe
                 * @param metodo
                 * @param args ... outros parametros
                 */
                public function setService(classe:String, metodo:String, ...
args):void
                {
                        trace("AmfConnection --> setService: " + metodo);

                        this.fila.push({classe: classe, metodo: metodo, args: 
args});
                        serviceCall();
                }

                private function serviceCall():void
                {
                        if(chamou){
                                this.chamou = false;
                                var objService:Object = this.fila.shift();

                                trace("AmfConnection --> serviceCall: " + 
objService.metodo);

                                CursorManager.setBusyCursor();

                                objService.args.unshift(objService.classe + "." 
+
objService.metodo, this.responder);
                                super.call.apply(super, objService.args);
                        }
                }

                //
------------------------------------------------------------------
                //
                // metodos  privados
                //
                //
------------------------------------------------------------------

                /**
                 * metodo chamado pelo evento de status do NetConnection
                 */
                private function netStatus(event:NetStatusEvent):void
                {
                        CursorManager.removeBusyCursor();

                        var objErros:Object = ObjectUtil.copy(event.info);
                        dispatchEvent(new AmfStatusEvent(objErros, 
"netStatus"));
                }


                /**
                 * metodo chamado pelo evento de erros na sandbox acessada pelo
NetConnection
                 */
                private function netSecurityError(event:SecurityErrorEvent):void
                {
                        CursorManager.removeBusyCursor();

                        var objErros:Object = ObjectUtil.copy(event);
                        dispatchEvent(new AmfStatusEvent(objErros, 
"netSecurityError"));
                }

                /**
                 * metodo chamado pelo evento de erro do Responder (erros 
vindos do
AMFPHP)
                 */
                private function onRespFault(event:Object):void
                {
                        CursorManager.removeBusyCursor();

                        var objErros:Object = ObjectUtil.copy(event);
                        dispatchEvent(new AmfStatusEvent(objErros, 
"onRespFault"));
                }

                /**
                 * metodo responsavel por entregar a resposta do amfphp para o
evento
                 */
                private function onRespResult(event:Object):void
                {
                        if(!chamou){
                                this.chamou = true;

                                trace("AmfConnection --> onRespResult: " + 
event.serviceName);

                                CursorManager.removeBusyCursor();

                                var status:String = event.status;

                                var objResult:Object = ObjectUtil.copy(event);

                                dispatchEvent(new AmfResultEvent(objResult,
objResult.serviceClass, objResult.serviceName));

                                // envia a mensagem de status p/ statusHandler 
(default.as)
                                dispatchEvent(new ProxyEvent("status", status));

                                if(this.fila.length > 0){
                                        serviceCall();
                                }
                        }
                }
        }
}

eventos:


package events
{
        import flash.events.Event;

        public class AmfStatusEvent extends Event
        {
                public static const AMF_STATUS_EVENT:String = "amfStatusEvent";

                public var statusObj:Object;
                public var eType:String;

                public function AmfStatusEvent(statusObj:Object, eType:String)
                {
                        super(AMF_STATUS_EVENT);
                        this.eType = eType;
                        this.statusObj = statusObj;
                }
        }
}

e:

package events
{
        import flash.events.Event;

        public class AmfResultEvent extends Event
        {
                public static const AMF_RESULT_EVENT:String = "amfResultEvent";

                public var resultObj:Object;
                public var serviceClass:String;
                public var serviceName:String;

                public function AmfResultEvent(resultObj:Object,
serviceClass:String, serviceName:String)
                {
                        super(AMF_RESULT_EVENT);
                        this.resultObj = resultObj;
                        this.serviceClass = serviceClass;
                        this.serviceName = serviceName;
                }
        }
}

[ ]'s

Ricardo

On Feb 14, 7:19 am, brnfd <[EMAIL PROTECTED]> wrote:
> Não conheço muito de flex, mas se o BlazeDS for chamado por um
> HttpService dá pra usar o evento result e deixar por conta dele
> continuar a fazer o que você quiser.
>
> Abraços,
> Bruno
--~--~---------~--~----~------------~-------~--~----~
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para [email protected]
Para sair da lista, envie um email em branco para [EMAIL PROTECTED]
Mais opções estão disponíveis em http://groups.google.com/group/flexdev
-~----------~----~----~----~------~----~------~--~---

Responder a