網路上查到的資料不外乎是設定services-config.xml檔案的方法,還要設定一堆莫名其妙不知所云的東西
這邊提供的是我的懶人方法
package
{
import mx.rpc.remoting.mxml.RemoteObject;
[Bindable]
public class AMFPHP
{
public static function amf(source:String, gateWay:String = “amfphp/gateway.php”):RemoteObject
{
var service:RemoteObject = new RemoteObject();
service.makeObjectsBindable = true;
service.destination = “amfphp”;
service.source = source;
service.endpoint = gateWay;
service.showBusyCursor = true;
return service;
}
}
}
我寫了個名為AMF的class提供一個可以回傳RemoteObject的static method
儲存成AMFPHP.as,放在與程式碼同一目錄下
關於程式function的參數
第一個參數是必填的,填入要執行的class名稱如:”MyObject”
第二組參數選填,填入你的gateway.php位置,相對或絕對路徑都可以,預設是從網站根目錄下amfphp/gateway.php,跨網域的問題好像沒辦法(懶ˊˋ~)所以儘量在localhost執行吧
在使用的時候相當容易,拿之前的Hello的例子
public function remoteStart():void
{
//回傳一個設定好的RemoteObject,注意不是new物件喔,只是呼叫一個靜態方法
var service:RemoteObject = AMF.amf(「Hello」);
/*增加一個listener監聽,你可以寫成service.say.addEventListener(ResultEvent.RESULT, resultHandler);
這樣就可以針對某個php function來做程序控管,下面的寫法是統一所有function回傳都交由resultHandler function處理*/
service.addEventListener(ResultEvent.RESULT, resultHandler);
}
public functoin resultHandler(event:ResultEvent):void
{
trace(event.result);
}
相關文章