flash和asp php通訊實現程式

來源:互聯網
上載者:User

 一個例子簡單的描述了如何通過GET方法向伺服器端的ASP發送請求:

 代碼如下 複製代碼
_root. pushAction = function(URL) {
   this.loadVariables(URL, "GET");
}
var ask = true;
var pushURL = "http://localhost/test/return.asp?ask="+ ask;
pushAction (pushURL);
_root.onEnterFrame = fuction(){
   trace(_root.output);
}   

 這裡首先定義了一個名為pushAction的函數,在loadVariables函數中使用了GET參數。然後定義了一個名為ask的布爾型變數,用來向伺服器傳遞變數。最後使用pushAction函數向伺服器上的一個名為return的ASP頁面發送GET請求。如果需要對這樣的請求作出處理,在 ASP中,URL行的分析結果存在於Request對象中,比如下例:

 代碼如下 複製代碼
return.asp
<%@ Language="JScript" %>
<%
//聲明並定義接受請求的變數
var str_getask= Request.QueryString("ask");
//聲明並定義返回資訊變數
var str_Msg = "Sorry! Your request tread awry.";
//如果接受到的變數為true,則返回成功訊息
if (str_getask == "true"){
   str_Msg = "OK! Your request succeed!";
}
Response.write("output=" + str_Msg);


%>    這樣,一個名字為output,值為str_Msg的變數就發送回Flash Player中,可以在flash中以output的名字引用這個變數。當然我們必須注意伺服器在處理這個過程中是需要時間的,因此最後那個 onEnterFrame用來測試是否有變數返回.


loadVariables提供了一種簡單的方法讓我們可以從伺服器端的ASP或者PHP頁面載入變數,除了使用GET方法,它還可以使用POST 方法將用戶端提交的資料傳遞給伺服器。然而在處理大量用戶端與伺服器端互動的資訊時,使用過多的loadVariables語句會讓整個程式的維護性和可讀性變得複雜。在Flash MX的Action中,新增加了一個LoadVars的對象,並將它和XML,XMLSocket對象一起歸納於Client/Server對象之下。 LoadVars 對象是 loadVariables 動作的替代方法,它能夠提供一種更好的結構向伺服器發送和返回資訊。一個典型的LoadVars對象使用的例子如下:

 代碼如下 複製代碼
//構造一個新的LoadVars對象
myload = new LoadVars();
//設定myload的動作,以便伺服器驗證
myload.action = "post";
//驗證和伺服器串連的函數
myload.onLoad = function(success) {
//如果和伺服器成功串連則…
 if (success) {
//如果驗證動作成功則…
  if (this.conn == "1") {
         //將返回對象中的output變數賦值給情境中var為output的Dynamic Text框
   _root.output = this.output;
  }
 } else {
        //如果和伺服器串連不成功則返回失敗訊息,需要檢查路徑是否正確
  _root.output = "Can't connect to Server";
 }
};
//Dynamic Text的初始值為一個等待訊息
_root.output = "Waiting for response...";


//將myload下的變數發送到伺服器端,並將伺服器返回的資料結果放在myload對象中

 代碼如下 複製代碼
myload.sendAndLoad("http://localhost/test/return.asp", myload, "post");
//myload.sendAndLoad("http://localhost:8001/test/return.php",myload, "post");   

 在情境中以一個var名為output的Dynamic Text框來接受來自伺服器的訊息。使用LoadVars,我們可以利用sendAndLoad方法將一個LoadVars的實體下的所有變數發送出去,並將伺服器返回的資料結果儲存到一個目標對象中,其中conn,output都是從伺服器發送回來的,我們還利用了其onLoad事件函數來檢驗其是否將資訊發送到了伺服器頁面,再利用從伺服器傳回來的資料(this.conn)來驗證資訊是否正確。伺服器頁面的代碼如下:
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;
?>;   

 如果本例執行成功,則會在Flash Player中出現成功畫面,如圖所示。如果失敗,則返回失敗訊息(一般都是路徑出錯)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.