flex 通过HttpService访问远程数据服务

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代码进行简单的数据交互了.

你可能感兴趣的:(PHP,xml,Flex)