Amigos Flex Developers, Faz tempo q acompanho esta lista passivamente, mesmo porque todas minhas duvidas ao longo desse tempo foram sanadas com threads já existentes, postadas por outros usuarios. No entanto, deparei-me com o seguinte problema (nao encontrei no historico da lista):
Meu back-end ( php) não esta recebendo os argumentos do flex. Verifiquei na perspectiva de debug do flex builder, e constatei que os objetos sao criados corretamente, porem implesmente não chegam no php. Lembrando que via browser amfphp os metodos funcionam normalmente. Vejam os fontes: //VO´s <?php class UserVO { public $coduser; public $nome; public $email; public $login; public $senha; public $ativo; public $root; public $_explicitType = "br.com.sajsoft.sms.vo.UserVO"; } ?> package br.com.sajsoft.sms.vo { [Bindable] [RemoteClass(alias="br.com.sajsoft.sms.vo.UserVO")] public class UserVO { public var coduser:uint; public var nome:String; public var email:String; public var login:String; public var senha:String; public var ativo:String; public var root:String; } } //Classe remote package br.com.sajsoft.sms.remote{ import br.com.sajsoft.sms.vo.UserVO; import mx.controls.Alert; import mx.rpc.AsyncToken; import mx.rpc.Responder; import mx.rpc.events.FaultEvent; import mx.rpc.remoting.mxml.RemoteObject; public class RemoteSMS{ private var bridge:RemoteObject; //singleton private static var instance:RemoteSMS; public static function getInstance():RemoteSMS{ if(instance == null){ instance = new RemoteSMS(); } return instance; } //Funcao chamada em caso de falha no remote private function defaultFaultHandler(e:FaultEvent):void{ Alert.show(e.fault.faultDetail, e.fault.faultString); } public function Logar(ClassName:String, dadosVO:UserVO, result:Function):void { bridge.source = 'sms.' + ClassName; var async:AsyncToken = bridge.Login(dadosVO); async.addResponder(new Responder(result, defaultFaultHandler)); } public function RemoteSMS() { bridge = new RemoteObject(); bridge.showBusyCursor = true; bridge.destination = 'amfphp'; } } } //component de login <?xml version="1.0" encoding="utf-8"?> <mx:Panel xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="268" height="184" title="Digite seu login e Senha"> <mx:Script> <![CDATA[ import mx.rpc.events.ResultEvent; import br.com.sajsoft.sms.vo.UserVO; import br.com.sajsoft.sms.remote.RemoteSMS; import mx.rpc.remoting.mxml.RemoteObject; import mx.controls.Alert; private var remote:RemoteSMS = RemoteSMS.getInstance(); //Funcao de autenticacao private function Autenticar():void{ if(txtLogin.text != "" && txtSenha.text != ""){ var loginVO:UserVO = new UserVO(); loginVO.login = txtLogin.text; loginVO.senha = txtSenha.text; remote.Logar('ClassUsuario', loginVO, AutenticarResult); }else{ MessageLoginError.text = "Por favor, preencha todos os campos!!!"; } } private function AutenticarResult(e:ResultEvent):void{ if(e.result.logado == "YES"){ Alert.show("UHUHUHUHU, estamos logado " + e.result.logado,"Mensagem:"); }else{ MessageLoginError.text = e.result.erro; txtLogin.text = ""; txtSenha.text = ""; } } ]]> </mx:Script> <mx:Label x="10" y="10" fontFamily="Verdana" fontSize="10" fontStyle="normal" fontWeight="bold" textAlign="left" width="222" color="#F81207" id="MessageLoginError"/> <mx:Label x="10" y="38" text="Login"/> <mx:Label x="10" y="80" text="Senha"/> <mx:TextInput x="72" y="36" id="txtLogin"/> <mx:TextInput x="72" y="78" id="txtSenha" displayAsPassword="true"/> <mx:Button x="160" y="108" label="Acessar" id="btnLogin" click="Autenticar()"/> </mx:Panel> //main <?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="1098" height="746" horizontalAlign="center" xmlns:comp="br.com.sajsoft.sms.component.*"> <mx:Script> <![CDATA[ import br.com.sajsoft.sms.vo.UserVO; ]]> </mx:Script> <comp:LoginPanel x="675" y="300"> </comp:LoginPanel> </mx:Application> //back-end <?php include_once 'br/com/sajsoft/sms/vo/UserVO.php'; include_once 'classes/caiubiphp/modelflex.php'; class ClassUsuario { public function Login(UserVO $dadosVO){ $aut = new Model('usuario'); $aut->find(array('*'),"login = '$dadosVO->login' and senha = '$dadosVO->senha'"); $resultado['logado'] = null; $resultado['erro'] = null; if ($aut->result()){ $resultado['logado'] = "YES"; //Cria sessao $_SESSION['coduser'] = $user->coduser; return $resultado; }else{ $resultado['erro'] = "Usuário ou Senha Inválido"; $resultado['logado'] = "NO"; return $resultado ; } } } ------------- Desculpem o memorando e please help me!!! --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---