flex提供了4种模式来访问远程数据服务.
分别是<mx:WebService>,<mx:HttpService>,<mx:RemoteObject>和URLLoader.
每种方式各有优缺点.
先简单介绍一下<mx:HttpService>如何访问远程后台服务.
这里远程后台服务用php来实现.
flex代码
code by kula.
<?xml version="1.0" encoding="utf-8"?><mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"> <mx:Script> <![CDATA[ import mx.rpc.events.ResultEvent; import mx.rpc.events.FaultEvent; import mx.controls.Alert; public function postSuccess(event:ResultEvent):void { //当访问服务器成功之后.显示服务器回传数据 Alert.show(event.result.toString()); } public function postFault(event:FaultEvent):void { //远程访问失败,打印失败原因. Alert.show(event.fault.faultString,"注册失败"); } public function doPost():void { //Button click响应事件.调用HttpService的send函数发起远程数据访问. xmlRpc.send(); } ]]> </mx:Script> /* <mx:HttpService>控件. result指定操作成功函数 fault指定操作失败函数 resultFormat指定返回格式. 此时有多种格式.如array,e4x,flashvars,object,text,xml等。 我选了最简单的一种,text.意味着回传的值是一段原始的未经处理的字符串. */ <mx:HTTPService id="xmlRpc" url="http://localhost/web_service.php" result="postSuccess(event)" fault="postFault(event)" resultFormat="text"> <mx:request> <username>{name_value.text}</username> <password>{password_value.text}</password> </mx:request> </mx:HTTPService> <mx:Label x="41" y="64" text="名字" enabled="true" id="member_name"/> <mx:Label x="41" y="90" text="密码" id="password" enabled="true"/> <mx:TextInput x="83" y="62" id="name_value"/> <mx:TextInput x="83" y="86" displayAsPassword="true" editable="true" id="password_value"/> <mx:Button x="83" y="116" label="注册" id="submit" click="doPost()"/></mx:Application>
后台php代码:
code by kula.
//这里我简单摘取了一些代码.不太全.但逻辑应该非常清楚。简单修改即可用上 $username=trim($_REQUEST['username']); $password=trim($_REQUEST['password']); if(Member::checkSuchMember($username)) { print "注册失败"; } else { $member = new Member(); $member->name = $username; $member->password = $password; member->put(); print "success"; }
嗯。大功告成.这里flex代码就能和php代码进行简单的数据交互了.