Quinhone,

Tente reinstalar o debug que você pode encontrar em:
[Pasta de instalação do Flex Builder]\Player\debug

Agora, eu acho estranho no seu código você fazer um processamento logo
após a invocação do HTTPService.

DPlogin.send();
var idUsuario:String = DPlogin.lastResult.nad.login.usuario;
var idSenha:String = DPlogin.lastResult.nad.login.senha;

Creio que isto não irá funcionar! Tal como se encontra o código acima,
o resultado não estará disponível imediatamente após a chamada do
método. Se quiser ter acesso ao resultado crie um handler para o
evento result do HTTPService:

<mx:HTTPService id="DPlogin"
        url="login.php?usuario={usuario_txt.text}&amp;senha={senha_txt.text}"
        result="DPloginResultHandler"/>

então:

private function DPloginResultHandler(event:ResultEvent):void
{
   var idUsuario:String = DPlogin.lastResult.nad.login.usuario;
   var idSenha:String = DPlogin.lastResult.nad.login.senha;
   if (idUsuario == usuario_txt.text && idSenha == senha_txt.text){
      currentState="sistema";
   } else if (DPlogin.lastResult.nad.login.usuario == "") {
      Alert.show("Preencha o Campo Usuário");
   } else if (DPlogin.lastResult.nad.login.senha == "") {
      Alert.show("Preencha o Campo Senha");
   } else {
      Alert.show("Você digitou algo errado");
   }
}

Observe que o DPlogin.send() não aparece neste trecho de código. Isto
porque ele é o único que deve ser executado no click do botão. O
restante deve estar no handler acima.

Entendeu? Quando você faz um post ( HTTPService.send() ) leva um tempo
para o resultado estar disponível para o cliente. Por isto, creio que
o seu código deva estar em um handler do evento "result" do seu
HTTPService.


[]'s
Beck Novaes



On 12 fev, 00:10, "Luis Carlos Quinhone" <[EMAIL PROTECTED]>
wrote:
> Fábio, eu não consigo debugar o projeto, dá uma mensagem que o meu player
> não permite isso. não sei porque...
>
> bom o problema dos dois click eu arrumei, coloquei a chamada do HTTP.send()
> no onChange do Textinput, pq quando eu clicava no botão, pela lógica de
> sequência da função, ele deveria executar o http e depois testar os campos,
> mas não faz isso, no primeiro click ele executava o httpService e no segundo
> que ele testava.
>
> Agora, se vc puder me ajudar, fiz algumas mudanças na função, mas mesmo
> assim não fu~ciona 100%, a não ser que os campos tenham sido preenchidos
> corretamente, se estiver tudo correto, passa, mas se eu deixar os campos em
> branco ele não testa, aí queria tirar uma dívida:
>
> Quando eu retorno uma consulta que vem em XML, mas que não traz resultado
> algum, como eu testo?
>
> Ex: o XML traz assim
>
> <nad>
>     <login>
>           <login></login>
>           <senha></senha>
>     </login>
> </nad>
>
> o mxml completo está assim:
>
> <?xml version="1.0" encoding="utf-8"?>
> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"; layout="absolute"
> width="100%" height="100%" currentState="login">
> <mx:HTTPService id="DPlogin"
> url="login.php?usuario={usuario_txt.text}&amp;senha={senha_txt.text}"/>
>
>     <mx:Script>
>         <![CDATA[
>             //import mx.managers.PopUpManager;
>             import mx.core.IFlexDisplayObject;
>             import mx.utils.ArrayUtil;
>             import mx.controls.Alert;
>
>             private function processaLogin():void{
>              DPlogin.send();
>              var idUsuario:String = DPlogin.lastResult.nad.login.usuario;
>              var idSenha:String = DPlogin.lastResult.nad.login.senha;
>                  if (idUsuario == usuario_txt.text && idSenha ==
> senha_txt.text){
>                   currentState="sistema";
>                  }else if (DPlogin.lastResult.nad.login.usuario == ""){
>                    Alert.show("Preencha o Campo Usuário");
>                   }else if (DPlogin.lastResult.nad.login.senha == ""){
>                    Alert.show("Preencha o Campo Senha");
>                   }else{
>                    Alert.show("Você digitou algo errado");
>                   }
>             }
>
>         ]]>
>     </mx:Script>
>
>     <mx:states>
>
>      <mx:State id="login" name="login">
>       <mx:AddChild position="lastChild">
>        <mx:Panel width="300" height="276" layout="absolute"
> horizontalCenter="0" verticalCenter="9" title="Login - Núcleo AD MT"
> cornerRadius="10">
>      <mx:Form horizontalCenter="0" y="20">
>             <mx:FormItem label="Usuário">
>                 <mx:TextInput id="usuario_txt" width="100%"
> change="DPlogin.send();"/>
>             </mx:FormItem>
>             <mx:FormItem label="Senha">
>                 <mx:TextInput id="senha_txt" displayAsPassword="true"
> width="100%" change="DPlogin.send();"/>
>             </mx:FormItem>
>         </mx:Form>
>         <mx:Button id="ok" click="processaLogin()" label="Entrar no Sistema"
> width="60%" horizontalCenter="0" top="125"/>
>        </mx:Panel>
>       </mx:AddChild>
>      </mx:State>
>
>      <mx:State name="sistema">
>       <mx:AddChild position="lastChild">
>        <mx:Panel width="90%" height="200" layout="absolute" title="SISTEMA -
> NUCLEO AD MT" horizontalCenter="0" top="20">
>         <mx:Button x="206.5" y="66" label="Login Novamente"
> click="currentState='login'"/>
>        </mx:Panel>
>       </mx:AddChild>
>
>      </mx:State>
>
>     </mx:states>
> <!--</mx:TitleWindow>     -->
> </mx:Application>
>
> Att
>
> Quinhone
>
> ----- Original Message -----
> From: "Fabio Terracini" <[EMAIL PROTECTED]>
> To: <[email protected]>
> Sent: Sunday, February 11, 2007 10:10 PM
> Subject: [flexdev] Re: Ajuda com função
>
> Luis,
>
> Como está a sua tag HTTPService? Você tem alguma variável para popular
> que é enviada para o serviço (como o login e senha em si)? Será que a
> chamada de seu método send não tem que vir depois de alguma coisa?
> Afinal, se você tem que clicar duas vezes, algum processamento está
> ocorrendo depois da primeira chamada que faz a segunda chamada
> funcionar.
>
> Você já tentou um debug para ver se as variáveis estão com os valores
> que você espera? Se está entrando no bloco de código correto, etc etc?
>
> []s
> Fabio Terracini
>
> On 2/11/07, Luis Carlos Quinhone <[EMAIL PROTECTED]> wrote:
>
> > Pessoal tenho uma função que serve pra testar dois campos e fazer login,
> > mas
> > estou com alguns problema na execução.
>
> > 1º - Tenho que clicar duas vezes no botão pra executar.
> > 2º - se os campos estiverem corretos, depois do segundo click, entra no
> > state "SISMETA", mas se preencher errado ou deixar em branco, não faz nada
>
> > Alguém pode ajudar?
>
> > função:
>
> >             private function processaLogin():void{
> >              DPlogin.send();  // aqui eu axecuto a consulta no BD via
> > HTTPService que me retorna umXML
> >              var idUsuario:String =
> > DPlogin.lastResult.nad.login.usuario;
> >              var idSenha:String =
> > DPlogin.lastResult.nad.login.senha;
> >                  if (idUsuario == usuario_txt.text && idSenha ==
> > senha_txt.text){
> >                   currentState="sistema";
> >                  }else if
> >                   (usuario_txt.text =="" || senha_txt.text==""){
> >                    Alert.show("Preencha os campos");
> >                   }else{
> >                   Alert.show("Opsss!! Erro!");
> >                  }
> >             }
>
> > Att
>
> > Quinhone


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

Responder a