Exatamente isso Taciano. O Flex é assíncrono. Então você precisa se
acostumar a trabalhar dessa forma.

Abs,
Eric Cavalcanti
http://www.firescrum.com

2009/11/22 Taciano.Peruzzo <taciano.peru...@gmail.com>

>
> Um problema que sempre tenho ao criar as funções no Flex é em saber
> como o Flex irá executá-las, pois ao rodar a aplicação, esta me
> retorna por diversas vezes objetos nulos que deveriam ser preenchidos
> no escopo da função, e só são após o fim da execução desta, e não
> posso tratá-lo dentro da função. Vou por um exemplo :
>
> private function setClienteResult(e:ResultEvent):void{
>        lstClientes = new ArrayCollection(e.result as Array);
>        clienteSelecionado = voCliente(lstClientes.getItemAt(0));
> }
>
> private function salvaCliente():void {
>        clienteSelecionado.nome = tiNome.text;
>        clienteSelecionado.cpf_cnpj = tiCpfCnpj.text;
>
>        remote.setCliente(clienteSelecionado, setClienteResult);
>
>        // aqui irá gerar um erro pq o remote.setCli... não executou ainda o
> setClienteResult e o clienteSelecionado não foi preenchido
>        tiIndice.text = clienteSelecionado.indice.toString();
> }
>
> ai para contornar, acabo colocando isso na função setClienteResult, e
> caso queira utilizá-la genericamente para diversos casos, não posso pq
> aquele tiIndice sempre irá receber o valor ...
>
> private function setClienteResult(e:ResultEvent):void{
>        lstClientes = new ArrayCollection(e.result as Array);
>        clienteSelecionado = voCliente(lstClientes.getItemAt(0));
>        tiIndice.text = clienteSelecionado.indice.toString();
> }
>
> meu remoteObject está assim
>
> public function setCliente(dados:voCliente, result:Function):void{
>        var async:AsyncToken = bridge.setCliente(dados);
>        async.addResponder(new Responder(result, defaultFaultHandler));
> }
>
> meu pensamento é de que o Flex execute uma linha após a outra, mas não
> é isso que acontece, parece que ele só isáo executar o remoteObject
> após a conclusão da função que o chamou ... isso confunde ...
> >
>

--~--~---------~--~----~------------~-------~--~----~
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com
Para sair da lista, envie um email em branco para 
flexdev-unsubscr...@googlegroups.com
Mais opções estão disponíveis em http://groups.google.com/group/flexdev
-~----------~----~----~----~------~----~------~--~---

Responder a