首先,說下具體配置,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地址"; //注意是字串,而不是URLRequest19 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 }