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