flash與后臺(tái)通信(ASP)的幾種方法
2006/11/20 9:31:46
一、使用loadVariables
一個(gè)例子簡(jiǎn)單的描述了如何通過(guò)GET方法向服務(wù)器端的ASP發(fā)送請(qǐng)求:

  [Copy to clipboard]CODE: _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);
}
這里首先定義了一個(gè)名為pushAction的函數(shù),在loadVariables函數(shù)中使用了GET參數(shù)。然后定義了一個(gè)名為ask的布爾型變量,用來(lái)向服務(wù)器傳遞變量。最后使用pushAction函數(shù)向服務(wù)器上的一個(gè)名為return的ASP頁(yè)面發(fā)送GET請(qǐng)求。如果需要對(duì)這樣的請(qǐng)求作出處理,在ASP中,URL行的分析結(jié)果存在于Request對(duì)象中,比如下例:
return.asp

  [Copy to clipboard]CODE: <%@ Language="JScript" %>
<%
//聲明并定義接受請(qǐng)求的變量
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);
%>
這樣,一個(gè)名字為output,值為str_Msg的變量就發(fā)送回Flash Player中,可以在flash中以output的名字引用這個(gè)變量。當(dāng)然我們必須注意服務(wù)器在處理這個(gè)過(guò)程中是需要時(shí)間的,因此最后那個(gè)onEnterFrame用來(lái)測(cè)試是否有變量返回.
二、使用LoadVars
loadVariables提供了一種簡(jiǎn)單的方法讓我們可以從服務(wù)器端的ASP或者PHP頁(yè)面載入變量,除了使用GET方法,它還可以使用POST方法將客戶(hù)端提交的數(shù)據(jù)傳遞給服務(wù)器。然而在處理大量客戶(hù)端與服務(wù)器端交互的信息時(shí),使用過(guò)多的loadVariables語(yǔ)句會(huì)讓整個(gè)程序的維護(hù)性和可讀性變得復(fù)雜。在Flash MX的Action中,新增加了一個(gè)LoadVars的對(duì)象,并將它和XML,XMLSocket對(duì)象一起歸納于Client/Server對(duì)象之下。LoadVars 對(duì)象是 loadVariables 動(dòng)作的替代方法,它能夠提供一種更好的結(jié)構(gòu)向服務(wù)器發(fā)送和返回信息。一個(gè)典型的LoadVars對(duì)象使用的例子如下:

  [Copy to clipboard]CODE: //構(gòu)造一個(gè)新的LoadVars對(duì)象
myload = new LoadVars();
//設(shè)定myload的動(dòng)作,以便服務(wù)器驗(yàn)證
myload.action = "post";
//驗(yàn)證和服務(wù)器連接的函數(shù)
myload.onLoad = function(success) {
//如果和服務(wù)器成功連接則…
    if (success) {
//如果驗(yàn)證動(dòng)作成功則…
        if (this.conn == "1") {
        //將返回對(duì)象中的output變量賦值給場(chǎng)景中var為output的Dynamic Text框
            _root.output = this.output;
        }
    } else {
        //如果和服務(wù)器連接不成功則返回失敗消息,需要檢查路徑是否正確
        _root.output = "Can't connect to Server";
    }
};
//Dynamic Text的初始值為一個(gè)等待消息
_root.output = "Waiting for response...";
//將myload下的變量發(fā)送到服務(wù)器端,并將服務(wù)器返回的數(shù)據(jù)結(jié)果放在myload對(duì)象中
myload.sendAndLoad("http://localhost/test/return.asp", myload, "post");
//myload.sendAndLoad("http://localhost:8001/test/return.php",myload, "post");
在場(chǎng)景中以一個(gè)var名為output的Dynamic Text框來(lái)接受來(lái)自服務(wù)器的消息。使用LoadVars,我們可以利用sendAndLoad方法將一個(gè)LoadVars的實(shí)體下的所有變量發(fā)送出去,并將服務(wù)器返回的數(shù)據(jù)結(jié)果存儲(chǔ)到一個(gè)目標(biāo)對(duì)象中,其中conn,output都是從服務(wù)器發(fā)送回來(lái)的,我們還利用了其onLoad事件函數(shù)來(lái)檢驗(yàn)其是否將信息發(fā)送到了服務(wù)器頁(yè)面,再利用從服務(wù)器傳回來(lái)的數(shù)據(jù)(this.conn)來(lái)驗(yàn)證信息是否正確。服務(wù)器頁(yè)面的代碼如下:

下一頁(yè)
返回列表
返回首頁(yè) 主站蜘蛛池模板: 欧美性bbwbbw| 中文字幕一区二区三区有限公司| 99re最新地址精品视频| 无码一区二区波多野结衣播放搜索 | 女大学生的沙龙室| 久久久受www免费人成| 欧美freesex黑人又粗超长| 亚洲精品视频免费| 精品亚洲视频在线| 国产免费全部免费观看 | 日本卡一卡二新区| 免费国产真实迷j在线观看| 蜜臀AV一区二区| 国产无遮挡吃胸膜奶免费看| 2020国产精品视频| 在线免费h视频| jizz免费观看视频| 成人午夜亚洲精品无码网站| 久久精品无码专区免费东京热 | 免费看无码自慰一区二区| 青青青免费网站在线观看| 国产精品99久久久久久宅男| 99久久无色码中文字幕人妻 | 精品小视频在线| 国产69久久精品成人看| 青青草国产精品久久| 国产成人欧美视频在线| 婷婷激情综合网| 国产精品第13页| 91麻豆高清国产在线播放| 大胸姐妹在线观看| t66y最新地址| 富二代琪琪在线观看| 五月天婷婷精品免费视频| 欧美日韩免费看| 亚洲欧美韩国日产综合在线| 波多野结衣被三个小鬼| 人妻熟妇乱又伦精品视频| 免费一级毛片在线播放泰国| 香蕉免费看一区二区三区| 国产色无码精品视频国产|