现在的位置: 首页 > 综合 > 正文

AS3利用AMFPHP与PHP进行通讯

2012年11月23日 ⁄ 综合 ⁄ 共 1535字 ⁄ 字号 评论关闭

首先,说下具体配置,PHP版本:5.2.5,apache:2.2.11,amfphp:1.9版本,windows xp系统。

注意:amfphp的不同的版本与php不同的版本会有冲突。具体检测方法是:在web根目录下解压amfphp后,访问该url: http://localhost/amfphp/browser/,如果没有报任何错误,那么恭喜你。如果有错误,请更换amfphp的版本。

经我的测验,上面那个配置是不会有问题的。

方法步骤:
1、声明一个NetConnection,选择使用AMF3协议,现在一般都用AMF3
2、声明一个Responder对象,该对象在 NetConnection.call() 中使用以处理来自与特定操作成功或失败相关的服务器的返回值。
3、用NetConnection.call()读取PHP里面的方法,NetConnection.call(command:String, responder:Responder)。
Responder里两个函数参数,第一个,如果对服务器的调用成功并返回结果,则此函数被调用。例子中的onSuccess。

第二个, 如果服务器返回一个错误,则此函数被调用。例子中的,onError。

 

 1 package  
 2 {
 3     import flash.display.Sprite;
 4     import flash.events.*;
 5     import flash.net.NetConnection;
 6     import flash.net.ObjectEncoding;
 7     import flash.net.Responder;
 8     
 9     /**
10      * ...
11      * 
12      * 
13      */
14     public class ASWithPHP_2 extends Sprite 
15     {
16         private var connection:NetConnection = new NetConnection();
17         private var rsp:Responder = new Responder(onSuccess, onError);
18         private var phpUrl:String = "PHP地址"; //注意是字符串,而不是URLRequest
19         
20         public function ASWithPHP_2() 
21         {
22             init();
23         }
24         
25         private function init():void 
26         {
27             connection.objectEncoding = ObjectEncoding.AMF3; //选择AMF3协议
28             connection.addEventListener(NetStatusEvent.NET_STATUS, onNetStatus);
29             connection.connect(phpUrl); //连接后台PHP地址
30             connection.call("PHP里面的方法", rsp);
31         }
32         
33         private function onNetStatus(e:NetStatusEvent):void 
34         {
35             switch(e.info.code) {
36                 case "NetConnection.Connect.Success":
37                 trace("连接成功");
38                 break;
39                 
40                 case "NetStream.Play.StreamNotFound":
41                 trace("没有找到:" + phpUrl);
42                 break;
43             }
44         }
45         
46         private function onSuccess(obj:Object):void {
47             trace("OK:" + obj);
48         }
49         
50         private function onError(_obj:Object):void {
51             trace("错误");    
52         }
53     }
54 
55 }

抱歉!评论已关闭.