Quando você terminar o processo e quiser começar outro, utilize
dispachEvent(),

E se você quiser voce pode extender a classe Event para poder anexar
outras coisas nesse evento.

fica mais controlado o processamento em cascata.

On 23 nov, 10:20, Eric Cavalcanti <ecavalca...@gmail.com> wrote:
> Exatamente isso Taciano. O Flex é assíncrono. Então você precisa se
> acostumar a trabalhar dessa forma.
>
> Abs,
> Eric Cavalcantihttp://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