Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

edsonantolini

[Resolvido] Login e Senha

Recommended Posts

Ola, bom dia.

Estou me matando, não estou encontrando uma solução. fiz todo o crud.

 

tenho uma aplicação onde o usuario entra com usuario e senha.

 

Estrutura

Arquivo princinpal: edson_crud_amfphp.mxml

Componentes: Login.mxml src/componentes/Login.mxml

Arquivo Action Script : src/funcoes_cliente.as

Tela de login

 

<?xml version="1.0" encoding="utf-8"?>

<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="400" height="168"

title="Login User">

<mx:Script>

<![CDATA[

import mx.managers.PopUpManager;

import mx.controls.Alert;

public function Logar_Sis ():void

{

if(login.text == "teste" && senha.text == "teste"){

Alert.show("Usuario Logado com sucesso!");

PopUpManager.removePopUp(this);

// QUERO CHAMAR MINHA FUNÇÂO QUE INICIALIZA APLICA

}else{

login.setFocus();

Alert.show("Usuario ou Senha Invalido!");

}

}

]]>

</mx:Script>

<mx:Label x="67" y="38" text="Login:"/>

<mx:TextInput id="login" x="110" y="34"/>

<mx:Label x="65" y="66" text="Senha:"/>

<mx:TextInput id="senha" x="110" y="64" displayAsPassword="true"/>

<mx:Button x="266" y="96" label="Send" click="Logar_Sis()" />

<!--click="authHTTP.send() -->

</mx:TitleWindow>

 

Form Principal:

 

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="Login_Init()">
[color="#FF0000"]<!--// chama anterior //creationComplete="inicializacao() -->[/color]
	<mx:RemoteObject
					id="ro_edson_crud_amfphp"
					destination="amfphp"
					source="manutencao_clientes"
					showBusyCursor="true" >
					
		<mx:method 
			name="listarClientes"
			result="{resultado_clientes(event)}"
			fault="mx.controls.Alert.show('Erro ao Mostrar os Clientes:'+event.fault.faultString)"/>
</mx:RemoteObject>
	<mx:Script source="funcoes_cliente.as "/>

Meu problema como faço para chamar essa função que esta dentro do meu funcoes_cliente.as

 

        public function inicializacao():void
	{
	ro_edson_crud_amfphp.listarClientes.send();
					}

Compartilhar este post


Link para o post
Compartilhar em outros sites

em que lugar do Form Principal você adicionou a tela de login? não estou vendo

 

ou você esta chamando cada um separado? é preciso que ambos estejam juntas, com um arquivo usando um viewstate talvez

controlando qual aparece no momento

 

 

 

[]´s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eder,

 

Eu estou chamando o form de login na aplicação principal, esse form login é um componente.

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" [color="#FF0000"]creationComplete="Login_Init()">[/color]<!--// chama anterior //creationComplete="inicializacao() -->

Eu consigo por usuario e senha valido, funciona. encerro o form normal volto para aplicação princinpal . Mais quero que carregue meus dados.

So consigo isso usando a função :

creationComplete="inicializacao()

Essa função carrega normal meus dados no form principal.. mais ai nesse caso não consigo usar login na aplicação.

Compartilhar este post


Link para o post
Compartilhar em outros sites

sim, eu vi essa função "Login_Ini", mas o que ela faz????

 

eu só quero entender como você esta inserindo a tela de login na tela principal

 

 

 

[]´s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eder, sim

vou explicar aqui.. sou novo nessa ferramenta num sei muito mais vamos la..

 

/////////sim, eu vi essa função "Login_Ini", mas o que ela faz????////////

 

Essa funão busca o form login.mxml e me tras como primeira pagina. Segue o codigo.

import Componentes.Login;

import mx.rpc.events.FaultEvent;

import mx.controls.Alert;

import mx.events.CloseEvent;

import mx.managers.PopUpManager;

import mx.rpc.events.ResultEvent;

 

public function Login_Init(): void

{

var loginPopUp : Login = Login(PopUpManager.createPopUp(this, Componentes.Login, true));

loginPopUp.setFocus();

PopUpManager.centerPopUp(loginPopUp);

}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

certo, entendi agora

 

a chave para trabalhar com o flex, é saber lidar com eventos, como nesse seu caso, o componente de login tem que avisar a tela principal que o login funcionou

 

seria assim:

if(login.text == "teste" && senha.text == "teste"){
   alert.show("Usuario Logado com sucesso!"); 
   dispatchEvent(new Event("LOGIN_SUCESSO"));
   PopUpManager.removePopUp(this);
}else{
....

}

 

agora a tela principal tem que capturar isso

 

public function Login_Init(): void
{
  var loginPopUp : Login = Login(PopUpManager.createPopUp(this, Componentes.Login, true));
  loginPopUp.setFocus();
  loginPopUp.addEventListener("LOGIN_SUCESSO", removerTelaLogin); 
  PopUpManager.centerPopUp(loginPopUp);
}

private function removerTelaLogin(e:Event): void
{
   inicializacao();
}

 

pronto, só isso deve funcionar, caso você queria melhorar o código, transforme a string "LOGIN_SUCESSO" numa constante, no componente Login

e faça a remoção do popup da tela, dentro da função "removerTelaLogin" e não dentro do componente

 

 

 

[]´s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Resolvido

Eder Valeuuuuuuuu.. Deu certo.

 

Usei o dispatchEvent ai deu certo..

Segue o codigo.

public function inicializacao():void
	{
	frmLogin = Login(PopUpManager.createPopUp(this, Login,true));
	frmLogin.addEventListener("login_ok",OnLoginOk);
	PopUpManager.centerPopUp(frmLogin);
        ro_edson_crud_amfphp.listarClientes.send();
	}
private function OnLoginOk(e:Event):void
	{
	PopUpManager.removePopUp(frmLogin);
	}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.