Pessoal, Estou começando com o Swiz + Flex4 e estou tendo uma dificuldade em relação a quando e como fechar uma janela, no caso específico, a janela de Login.
Segue abaixo: *main.mxml* <?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" xmlns:view="r2.view.*" xmlns:config="r2.config.*" creationComplete="{init()}"> <fx:Style source="main.css"/> <fx:Declarations> <config:SwizConfig/> <s:BasicLayout/> </fx:Declarations> <fx:Script> <![CDATA[ import mx.managers.PopUpManager; import r2.view.LoginForm; private function init():void { var form:LoginForm = new LoginForm(); PopUpManager.addPopUp(form, this, true); PopUpManager.centerPopUp(form); } ]]> </fx:Script> </s:Application> *LoginForm.mxml* <?xml version="1.0" encoding="utf-8"?> <s:Panel xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" width="286" height="142" title="R2 - Login" skinClass="spark.skins.spark.PanelSkin"> <s:layout> <s:VerticalLayout/> </s:layout> <fx:Declarations> </fx:Declarations> <fx:Script> <![CDATA[ import mx.rpc.remoting.RemoteObject; import r2.model.presentation.LoginPM; [Inject(source="loginPM")] [Bindable] public var loginPM:LoginPM; ]]> </fx:Script> <mx:Form width="100%" height="114" > <mx:FormItem label="Usuário" width="250" required="true"> <s:TextInput width="100%" id="tfUsuario"/> </mx:FormItem> <mx:FormItem label="Senha" width="250" required="true"> <s:TextInput width="100%" displayAsPassword="true" id="tfSenha"/> </mx:FormItem> <mx:FormItem width="250" horizontalAlign="right"> <s:Button label="Entrar" id="btnLogin" click="{loginPM.btnLogin(tfUsuario.text, tfSenha.text)}"/> </mx:FormItem> </mx:Form> </s:Panel> *LoginPM.as* * * * [Bindable] public class LoginPM { [Dispatcher] public var dispatcher:IEventDispatcher; public var usuario:Usuario; public function LoginPM() { this.usuario = new Usuario; } public function btnLogin(login:String, senha:String):void { var usuarioEvent:UsuarioEvent = new UsuarioEvent(UsuarioEvent.LOGIN); usuario.login = login; usuario.senha = senha; usuarioEvent.usuario = usuario; this.dispatcher.dispatchEvent(usuarioEvent); } } * *LoginController.as* package r2.controller { import flash.events.IEventDispatcher; import mx.collections.ArrayCollection; import mx.controls.Alert; import mx.rpc.events.FaultEvent; import mx.rpc.events.ResultEvent; import mx.rpc.remoting.RemoteObject; import org.swizframework.utils.services.ServiceHelper; import r2.event.UsuarioEvent; import r2.model.entities.Usuario; import spark.components.Application; public class LoginController { [Dispatcher] public var dispatcher:IEventDispatcher; [Inject(source="serviceHelper")] public var serviceHelper:ServiceHelper; [Inject(source="usuarioService")] public var usuarioService:mx.rpc.remoting.RemoteObject; //---------------------------------------------------------------------- public function LoginController() {} //---------------------------------------------------------------------- [Mediate(event="UsuarioEvent.LOGIN", properties="usuario")] public function login(usuario:Usuario):void { this.serviceHelper.executeServiceCall( usuarioService.login(usuario.login, usuario.senha), usuarioService_login_resultHandler, usuarioService_faultHandler ); } //---------------------------------------------------------------------- // handlers private function usuarioService_faultHandler(event:FaultEvent):void { Alert.show(event.fault.message, "Erro comunicação BlazeDS"); } private function usuarioService_login_resultHandler(event:ResultEvent):void { *//Aqui tenho o retorno do login OK...precisaria setar o usuario logado do sistema e fechar o Panel de login* var usuarioEvent:UsuarioEvent = new UsuarioEvent( UsuarioEvent.USUARIO_LOGADO ); usuarioEvent.usuarioLogado = event.result as Usuario; this.dispatcher.dispatchEvent(usuarioEvent); } } } -- []'s Leonardo Linux User #488650 Ubuntu User #27045 Mais sobre o Ubuntu em português: http://www.ubuntu-br.org/comece -- 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