电竞比分网-中国电竞赛事及体育赛事平台

分享

Flash 與 Asp 的結合使用 洪越論壇...

 sowill 2005-12-11
Flash 的功能已經(jīng)非常強大,完全可以跟其他的服務器端語言結合起來,做出適合現(xiàn)在的網(wǎng)絡應用的網(wǎng)站。一個典型的模式就是Flash
與Asp的結合使用。其架構如圖1所示。

圖01
  可以把上面的結構看成是三層,F(xiàn)lash是一層,Asp是一層,數(shù)據(jù)庫是一層。對Flash和Asp有點了解的人,只要處理好層與層之間的交互,結合使用Flash與Asp就決不是什么難事。
  一、下面我們就先來看看Flash與Asp之間的交互
  Flash與Asp的通訊是用Http協(xié)議,其請求格式為http://ip地址?參數(shù)1=值1&參數(shù)2=值2
  即是在目的地址后面加上問號,再跟上參數(shù)字符串,參數(shù)之間用“&”號格開。如:
http://www./test.asp?userid=guest&pwd=123
  在上面的請求中,請求的目的文件為:http://www./test.asp,第一個參數(shù)名為userid,值為guest,第二個參數(shù)名為pwd,值為123。
  Flash與Asp之間的交互無非就是構造上面的請求字符串。
  1、在Flash中,先構造好請求的字符串,然后利用函數(shù)LoadVariables(),就可以向服務器端發(fā)送請求和參數(shù)。我們來詳細看看LoadVariables()這個函數(shù)。
  函數(shù)的標準格式為loadVariables
("url" ,level/"target" [,
variables])
  在函數(shù)的各個參數(shù)中,url就是上面說的請求字符串。level/“target”是返回值的“層次”或者“目標”,這兩個當中只能指定一個。variables是請求的方式,其值可以是“Get”或者是“Post”,一般Get用于參數(shù)值比較短的傳送,Post用于參數(shù)值比較長的傳送,這個參數(shù)是可選的。比如loadVariables
("http://www./guest.asp?userid=guest&pwd=123" ,0,
“GET”)就是一個完整的請求。
  2、在Asp中,先要取得從Flash端傳送過來的參數(shù),這跟操作普通的HTML表單是一樣的。都是利用Request對象,其語句為:
username
= Request(“userid”)
password =
Request(“pwd”)
  userid和pwd就是從Flash端發(fā)送過來的參數(shù)名,如果是上一步中的請求字符串,username的值為guest,pwd的值為123。
  3、在服務器端處理完請求,獲得所需要的值后,Asp向Flash端發(fā)送結果,跟從Asp中操作Html語言一樣,都是用Response對象,其語句為:
Response.Write(“login=true&des=success”)
其返回值1的名為login,值為true,返回值2的名為des,值為success。
  4、在Flash端取得從服務器端返回的值,與操作Flash中普通的變量沒什么不同。如:
_root.gotoAndPlay(eval(login))表示的是跳轉到login的值的那一幀。但要注意的是在發(fā)送請求一段時間之后,才能用返回值,不然取得的是尚未返回的值,錯誤就在所難免了,而且這一類的錯誤很難發(fā)現(xiàn),用的時候要多加小心。
  二、Asp與數(shù)據(jù)庫之間的交互
  在Asp與數(shù)據(jù)庫的交互一般是用ADO控件。其讀取數(shù)據(jù)庫的語句為:
‘定義一個Connection對象
set
conn=Server.CreateObject("ADODB.Connection")
‘用Connection對象打開數(shù)據(jù)庫,這里打開的是sql
server,數(shù)據(jù)庫的地址為192.168.1.32
‘數(shù)據(jù)庫的用戶名為zengyu,密碼為123
conn.open
application("Driver={SQL
Server};SERVER=192.168.1.32;DATABASE=test;UID=zengyu;PASSWORD=123")
‘創(chuàng)建一個Recordset對象
set
rstemp=Server.CreateObject("ADODB.Recordset")
‘構造一個sql語句
sqltemp1="select
* from UserInfo where userid=‘"&strname&"‘ and
password=‘"&strpassword&"‘"
‘查詢數(shù)據(jù)庫
rstemp.open sqltemp1,conn, 1, 1
if not(rstemp.bof and rstemp.eof) then
Response.Write
(“login=true”)
end
if
  這里實現(xiàn)的只是簡單地查詢數(shù)據(jù)庫,要想了解Asp操作數(shù)據(jù)庫更詳細的東西,可以找Asp與數(shù)據(jù)庫方面的資料深入學習一下。
  三、例子――登陸的實現(xiàn)
  下面我們來制作一個簡單的實例,在Flash端輸入用戶名和密碼,通過Asp查詢數(shù)據(jù)庫,如果用戶名和密碼正確,就跳轉到登陸成功界面,否則就跳轉到登陸失敗界面。
  1、新建一個Flash,在場景中制作兩個文本框和一個Button,如圖2所示。其中用戶名對應的文本框屬性如圖3所示,密碼對應的文本框屬性如圖4所示。注意其中的文本類型和變量名。

圖02

圖03

圖04
  2、創(chuàng)建另外兩個關鍵幀,分別命名為“true”和“false”,并分別顯示“登陸成功”和“登陸失敗”字樣。
  3、在Button的ActionScript中增加下面的語句,注意更改其中的ip地址。
on
(release) {
loadVariables("http://192.168.1.32/guest.asp?userid=" add
eval(_root.userid) add "&pwd=" add eval(_root.pwd),this, "GET");
now =
new Date();
begintime = now.getSeconds();
while(true) {
endt = new
Date();
endtime = endt.getSeconds();
if (endt - now >
2)
{
_root.gotoAndPlay(eval(login));
}
}
}
  4、在Sql
Server數(shù)據(jù)庫(數(shù)據(jù)庫的類型不重要,改一改連接串就可以的)中,建立一張名為“userinfo”的表,其中有“Userid”和“Password”兩個字段。
  5、建立一個guest.asp文件,文件內(nèi)容為
  6、將Flash文件和Asp文件部署到IIS服務器中,然后打開Flash文件,輸入登陸信息就可以看到實例的效果了。

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多