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最新地址|
富二代琪琪在线观看|
五月天婷婷精品免费视频|
欧美日韩免费看|
亚洲欧美韩国日产综合在线|
波多野结衣被三个小鬼|
人妻熟妇乱又伦精品视频|
免费一级毛片在线播放泰国|
香蕉免费看一区二区三区|
国产色无码精品视频国产|