Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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>
<
Form Principal:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="[http://www.adobe.com/2006/mxml"" style="max-width:100%;border-radius:6px;margin:12px 0;display:block" loading="lazy" /> 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();
}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.
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
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);
}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
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);
}
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