首先,说下具体配置,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 }