Você chegou no detalhe que mais se apanha no Flex. *Causa* O Flex é assíncrono. ou seja, ele não espera que a função listaObjetosAcesso() retorne valores para após chamara a função testa().
*Solução* Quando a função onResultStatus() for invocado você despacha um evento dizendo que o Flex já possui os dados e no init() você fica lendo os eventos. *Porque o botão funciona* Quando você preciona o botão, os dados já retornaram. *Eduardo Kraus* Desenvolvedor eduardokr...@gmail.com http://blog.mxml.com.br 2009/4/13 Michael Antunes <michaelantu...@terra.com.br> > > Seguinte pessoal, > > Tenho uma classe chamada Acessa.as, nesta classe eu crio dinamicamente > um Remote Object com as seguintes caracteristicas: > > [Bindable] public var arrDados:ArrayCollection; > > public function listaObjetosAcesso():void { > var ro : RemoteObject = new RemoteObject(); > ro.destination = "ManipulaAcessos"; > ro.showBusyCursor = true; > ro.addEventListener(ResultEvent.RESULT, > onResultStatus); > ro.addEventListener(FaultEvent.FAULT,onFalha); > ro.jListaLiberados('SELECT * FROM ACESSOS'); > } > > private function onResultStatus(rs:ResultEvent):void { > arrDados = rs.result as ArrayCollection; > > //Alert.show(arrDados.getItemAt(0).objeto.toString()); > } > > public function possuiDados():int { > return arrDados.length > } > > > private function onFalha(ev: FaultEvent): void { > Alert.show(ev.fault.faultString); > } > > > Tenho um mxml chamado Acesso.mxml > > private var AccComp:AcessaComponente = new > AcessaComponente(); > private function init():void { > AccComp.listaObjetosAcesso(); > testa( ); > } > > private function testa():void { > Alert.show(AccComp.possuiDados().toString()); > } > > O meu problema é o seguinte... a função init esta no > creationComplete="init();" do módulo, e quando é executada, ele passa > o array com valores negativos. agora, se comento a função "teste" > chamada dentro do init e a chamo em um click do botão, ele me > apresenta corretamente o numero de valores que eu possuo no array. > Como eu faço, para fazer tudo isso na função init, ou seja, no > creation ja carregar o array e me apresentar o numero de valores que > esse array possui. > > ABRAÇOS! > > > > > > --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---