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 -~----------~----~----~----~------~----~------~--~---