loadVariables提供了一種簡單的方法讓我們可以從服務(wù)器端的ASP或者PHP頁面載入變量,除了使用GET方法,它還可以使用POST方法將客戶端提交的數(shù)據(jù)傳遞給服務(wù)器。然而在處理大量客戶端與服務(wù)器端交互的信息時,使用過多的loadVariables語句會讓整個程序的維護性和可讀性變得復(fù)雜。在Flash MX的Action中,新增加了一個LoadVars的對象,并將它和XML,XMLSocket對象一起歸納于Client/Server對象之下。LoadVars 對象是 loadVariables 動作的替代方法,它能夠提供一種更好的結(jié)構(gòu)向服務(wù)器發(fā)送和返回信息。一個典型的LoadVars對象使用的例子如下: //構(gòu)造一個新的LoadVars對象 myload = new LoadVars(); //設(shè)定myload的動作,以便服務(wù)器驗證 myload.action = "post"; //驗證和服務(wù)器連接的函數(shù) myload.onLoad = function(success) { //如果和服務(wù)器成功連接則… if (success) { //如果驗證動作成功則… if (this.conn == "1") { //將返回對象中的output變量賦值給場景中var為output的Dynamic Text框 _root.output = this.output; } } else { //如果和服務(wù)器連接不成功則返回失敗消息,需要檢查路徑是否正確 _root.output = "Can't connect to Server"; } }; //Dynamic Text的初始值為一個等待消息 _root.output = "Waiting for response..."; //將myload下的變量發(fā)送到服務(wù)器端,并將服務(wù)器返回的數(shù)據(jù)結(jié)果放在myload對象中 myload.sendAndLoad("http://localhost/test/return.asp", myload, "post"); //myload.sendAndLoad("http://localhost:8001/test/return.php",myload, "post"); 在場景中以一個var名為output的Dynamic Text框來接受來自服務(wù)器的消息。使用LoadVars,我們可以利用sendAndLoad方法將一個LoadVars的實體下的所有變量發(fā)送出去,并將服務(wù)器返回的數(shù)據(jù)結(jié)果存儲到一個目標(biāo)對象中,其中conn,output都是從服務(wù)器發(fā)送回來的,我們還利用了其onLoad事件函數(shù)來檢驗其是否將信息發(fā)送到了服務(wù)器頁面,再利用從服務(wù)器傳回來的數(shù)據(jù)(this.conn)來驗證信息是否正確。服務(wù)器頁面的代碼如下: ASP return.asp: <%@Language="JScript"%> <% var str_Msg; var action; var conn; action = Request.Form("action"); if (action == "post"){ str_Msg = "OK! return a Msg to you!"; conn = 1; } Response.write("conn=" + conn + "&output=" + str_Msg); %>
PHP return.php:
<php $action = $HTTP_POST_VARS["action"]; if ($action == "post") { $str_Msg = "OK! return a Msg to you!"; $conn = 1; } echo "conn=" . $conn . "&output=" . $str_Msg; ?>; 如果本例執(zhí)行成功,則會在Flash Player中出現(xiàn)成功畫面,如圖所示。如果失敗,則返回失敗消息(一般都是路徑出錯)
出處:藍(lán)色理想
責(zé)任編輯:handmade
上一頁 一、使用loadVariables 下一頁 三、使用xml
◎進入論壇Flash專欄版塊參加討論
|