2010年6月7日 星期一

Flash AMFPHP Remote 測試範例

§使用NetConnection來做AMF Remote

  • 範例雖是Flex撰寫,但由於使用NetConnection來做Remote連線,所以Flash也適用。

example:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application applicationComplete="init();" xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
<![CDATA[
import mx.rpc.events.ResultEvent;
private var _btnEnable:Boolean;
private function init():void
{
_btnEnable = true;
initNetConnection();
}

private var _nc:NetConnection;
private function initNetConnection():void
{
_nc = new NetConnection();
//回呼處理物件
_nc.client = this;
//序列化格式指定
_nc.objectEncoding = ObjectEncoding.AMF3;
//指定AMFServer服務位置
_nc.connect(amfServerUri);
_nc.addEventListener(NetStatusEvent.NET_STATUS , onStatus);
}

private var amfServerUri:String="http://127.0.0.1/flashservices/gateway.php";
private var _source:String = "tw.remote.test.Hello.sayHello";

embed SWF 實做,與問題

開發中遇到問題,先記錄起來,日後研究查詢資料後補上
在embed,SWF時,該SWF至於A網域中,而其他網域Web Server上.html頁面使用HTML標籤embed
SWF,在開發環境可以相對位置使用,但若置於web Server上就必須使用絕對位置,不然會產生,位置錯誤,如A網域中還同時置放了組態xml要給予swf使用,但由於相對位置關係,embed在B網域的swf會變成去讀取B網域中的xml,這樣就會發生錯誤情型。

詢問得知,若要開放embed的swf,xml內的資料須寫入swf,因為若是以絕對位置,會造成難以用網域來做安全管理,若是不開放就把xml寫出來,用動態載入,這樣的確也會因為安全性問題,讓有心人無法embed。

在remote端的server,或是swf想尋訪不同網域的地方都需要一個編輯一個crossdomain.xml,置放於服務server上,如此才能讓swf跨往訪問,可以用來控管不想要的網域連結

-

-