Acho que você ainda não compreendeu amigo.

Sql.executaConsulta

Esse método vai ser executado e vai passar pra próxima instrução (o Alert)
antes de terminar a execução do java, então vc está tentando pegar um valor
que ainda nem chegou.
E você ainda está fazendo isso dentro de um for, pior ainda, vc está
encadeando várias chamadas simultâneas ao java,
aí você não tem mais controle a qual chamada ao java o valor do boolean está
atrelado.

Terias que criar algo assim:

public function salva(): void
{
   Sql.addEventListener("qualquerEvento", terminouDeSalvar );
   Sql.executaConsulta( params..... );
}

public function terminouDeSalvar(e: Event): void
{
     Alert.show( Sql.resp );
}

E na classe Sql:

public function onResultRetorno(rs:ResultEvent):void {
     resp = rs.result as Boolean;
     this.dipatchEvent( new Event("qualquerEvento") )
}


Essa não é a forma mais correta de ser estruturada, mas serve de exemplo
para você entender
onde está o seu problema.

Recomendo dar uma estudada no Swiz Framework, ele vai facilitar muito o que
você quer fazer,
estruturar as chamadas no back-end em outra camada, e não simplesmente sair
jogando RemoteObjects
nas telas... =)

2009/7/3 Michael <michaelantu...@terra.com.br>

>
> esqueci um detalhe, o for é assim
>
> for (i = 0; i < 4; i++ )
> {
>   Sql.executaConsulta("jose",i,"2009-08-20","2009-08-25") //CHAMANDO A
> CLASSE Sql que possui o metodo executaConsulta, metodo statico.
>    Alert.show(String(Sql.resp));
>
> }
>
> On 3 jul, 14:05, Fábio Goll <fabiog...@gmail.com> wrote:
> > Tá errado cara, o onResult provavelmente está sendo chamado depois do
> > alerta:
> >
> > executaConsulta("jose",i,"2009-08-20","2009-08-25")
> > Alert.show(String(Sql.resp)); ------>>>>>> essa linha está errada, pois
> não
> > tem ligação nenhuma com o onResult !!!!
> >
> > Com certeza quando ele executar o alert, o resultado do java ainda não
> veio.
> >
> > -------------------------------------
> > ro.addEventListener(ResultEvent.RESULT,onResultRetorno);
> >
> > public static function onResultRetorno(rs:ResultEvent):void {
> >   resp = rs.result as Boolean;
> > /* ------->>>>>> Aqui vc tem que disparar um evento avisando que terminou
> a
> > chamada e capturar ele na sua "tela" para consultar o valor
> >  da variável estatica.
> >  Alias, era bom mandar o objeto pelo evento, não criar variável estática
> pra
> > isso, ou ainda criar uma classe Singleton para armezenar
> >  o valor */
> >
> > }
> >
> > Espero ter ajudado.
> >
> > 2009/7/3 Pergentino Araújo <jpergent...@gmail.com>
> >
> >
> >
> > > > Mostra como você está associando lá no java.
> >
> > > 2009/7/3 Michael <michaelantu...@terra.com.br>
> >
> > >> Sim, esta chamando certo sim.
> >
> > >> On 3 jul, 11:40, Pergentino Araújo <jpergent...@gmail.com> wrote:
> > >> > Não, ele está correto sim (pelo menos aparentemente).
> >
> > >> > ro.addEventListener(ResultEvent.RESULT,*onResultRetorno*);
> >
> > >> > public static function *onResultRetorno*(rs:ResultEvent):void {
> > >> >                        resp = rs.result as Boolean;
> > >> >                        Alert.show(resp.toString());
> >
> > >> > }
> >
> > >> > Está chamando o método no onResult.
> >
> > >> > Me fala uma coisa, como você está associando lá no java ? vc chegou
> a
> > >> > debugar lá pra ver se ele realmente chama ?
> >
> > >> > Mostra como você está associando lá no java.
> >
> > >> > []'s
> >
> > >> > 2009/7/3 Fábio Goll <fabiog...@gmail.com>:
> >
> > >> > > É pq o flex é assincrono, tu não tem como chamar o método e já
> pegar o
> > >> > > resultado na linha de baixo.
> > >> > > Tem que ser baseado em eventos a chamada ao java.
> > >> > > Quando o alert é chamado, não terminou ainda de processar o
> > >> remoteobject.
> > >> > > Tem muitas dúvidas dessas na lista, dê uma pesquisada sobre
> eventos.
> > >> > > []s
> > >> > > Fábio
> > >> > > 2009/7/3 Michael <michaelantu...@terra.com.br>
> >
> > >> > >> Acho que não, porque to fazendo para 1 x apenas.
> >
> > >> > >> On 3 jul, 10:51, George Queiroz <george.ba....@gmail.com> wrote:
> > >> > >> > eu acho q pq vc esta chamando várias X o mesmo método como o
> flex
> > >> faz
> > >> > >> > isso
> > >> > >> > com assincrono, o último resultado pode estar false e
> sobrescreve
> > >> sua
> > >> > >> > variável, não?
> >
> > >> > >> > 2009/7/3 Michael <michaelantu...@terra.com.br>
> >
> > >> > >> > > O valor correto eu estou pegando, no show do onResultRetorno,
> eu
> > >> > >> > > consigo pegar o valor certo vindo da consulta no Java. O
> problema
> > >> é
> > >> > >> > > que eu nao consigo manter a veriavel. Exemplo. Se eu retorno
> > >> true, na
> > >> > >> > > ahora de apresentar ela no MXML ela retorna FALSE, mas no
> show do
> > >> > >> > > result, me mostrou o true.
> >
> > >> > >> > > Eu quero manter a variavel resp.
> >
> > >> > >> > > On 3 jul, 10:44, Pergentino Araújo <jpergent...@gmail.com>
> > >> wrote:
> > >> > >> > > > Opa Michael,
> >
> > >> > >> > > > no caso, você não deveria pegar o valor assim:
> > >> > >> > > > rs.result.SUA_PROPRIEDADE
> > >> > >> > > ???
> >
> > >> > >> > > > No caso, o result vem como o objeto vindo do server-side
> que,
> > >> se
> > >> > >> > > > você
> > >> > >> > > > tem uma propriedade dentro dele, tem que pegar desta forma
> que
> > >> te
> > >> > >> > > > falei.
> >
> > >> > >> > > > Abraços.
> >
> > >> > >> > > > 2009/7/3 Michael Antunes <michaelantu...@terra.com.br>:
> >
> > >> > >> > > > > E ai pessoal.. Seguinte. Eu tenho uma classe que recebe
> > >> alguns
> > >> > >> > > > > parametros e realiza uma consulta no banco de dados.
> Abaixo a
> > >> > >> > > > > classe.
> >
> > >> > >> > > > > Classe Sql {
> >
> > >> > >> > > > >                 public static var resp:Boolean;
> >
> > >> > >> > > > >                 public function Sql () {}
> >
> > >> > >> > > > >                public static function executaConsulta
> > >> > >> > > > >
> (parametro:String,quantidade:int,dI:String,dF:String):void {
> > >> > >> > > > >                        var ro:RemoteObject = new
> > >> RemoteObject();
> > >> > >> > > > >                        ro.destination      = "Controle";
> > >> > >> > > > >                        ro.showBusyCursor   = true;
> >
> > >> > >> > >  ro.addEventListener(ResultEvent.RESULT,onResultRetorno);
> >
> > >> > >> > > > >  ro.addEventListener(FaultEvent.FAULT,onFault);
> >
> > >>  ro.verifica(parametro,quantidade,dI,dF);
> > >> > >> > > > >                }
> >
> > >> > >> > > > >                public static function
> > >> > >> > > onResultRetorno(rs:ResultEvent):void {
> > >> > >> > > > >                        resp = rs.result as Boolean;
> > >> > >> > > > >                        Alert.show(resp.toString());
> > >> > >> > > > >                }
> >
> > >> > >> > > > > }
> >
> > >> > >> > > > > Eu passo os parametros para ela, atravez de um mxml
> dentro de
> > >> um
> > >> > >> > > > > for
> >
> > >> > >> > > > > var retorno:Boolean;
> > >> > >> > > > > for (i = 0; i < 4; i++ )
> > >> > >> > > > > {
> > >> > >> > > > >  executaConsulta("jose",i,"2009-08-20","2009-08-25")
> > >> > >> > > > >   Alert.show(String(Sql.resp));
> > >> > >> > > > > }
> >
> > >> > >> > > > > O problema é que meu resp sempre volta false, mesmo que
> ele
> > >> seja
> > >> > >> > > > > true.
> > >> > >> > > > > Como faço para ele voltar com o result correto.
> >
> > >> > >> > > > --
> > >> > >> > > > Atenciosamente, Pergentino.
> >
> > >> > > --
> > >> > > Fábio Goll
> > >> > > Gtalk/Msn: fabiog...@gmail.com
> > >> > > Twitter: @fabiogoll
> >
> > >> > --
> > >> > Atenciosamente, Pergentino.
> >
> > > --
> > > Atenciosamente, Pergentino.
> >
> > --
> > Fábio Goll
> > Gtalk/Msn: fabiog...@gmail.com
> > Twitter: @fabiogoll
> >
>


-- 
Fábio Goll
Gtalk/Msn: fabiog...@gmail.com
Twitter: @fabiogoll

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