最新av偷拍av偷窥av网站,在教室伦流澡到高潮h麻豆,一个人在线高清免费观看,中文字幕av无码一二三区电影,中国丰满熟妇xxxx性

您當(dāng)前的位置:JZ5U綠色下載站文章中心設(shè)計(jì)學(xué)院Photoshop → 文章內(nèi)容
  • Flash與Asp的結(jié)合應(yīng)用實(shí)例之一 論壇的實(shí)現(xiàn)上

  在上一篇教程中我們介紹了Flash與Asp結(jié)合應(yīng)用的原理,現(xiàn)在我們就來(lái)看看兩者結(jié)合應(yīng)用的實(shí)例――論壇的實(shí)現(xiàn)。先來(lái)看看實(shí)例的效果,有登陸、查看主題、查看具體內(nèi)容、發(fā)表新主題、刪除等功能,在本實(shí)例上面稍做修改,就是一個(gè)比較完善的論壇了。下面我們按順序來(lái)一項(xiàng)一項(xiàng)實(shí)現(xiàn)論壇的功能。

  一 、登陸部分

  登陸部分的基本原理是:在Flash端輸入用戶名和密碼,通過(guò)Asp查詢數(shù)據(jù)庫(kù),如果用戶名和密碼正確,就跳轉(zhuǎn)到登陸成功界面,否則就跳轉(zhuǎn)到登陸失敗界面。

  A、 Asp部分

  新建一個(gè)空白文件,命名為L(zhǎng)ogin.asp,內(nèi)容如下:
<%
username = request("username")
userpwd = request("userpwd")
set conn=Server.CreateObject("ADODB.Connection")
conn.open "Driver={SQL Server};SERVER=192.168.1.32;DATABASE=pywz" '注釋1
set rs=Server.CreateObject("ADODB.Recordset")
strSql="select * from UserInfo where userid='" & username & "' and password='" & userpwd & "'"
rs.open strSql,conn, 1, 1
if not(rs.bof and rs.eof) then ‘注釋2
Response.Write ("userlogin=success")
Else
Response.Write ("userlogin=unsuccess")
end if
rs.close
conn.close
%>

  注釋1所在的行是針對(duì)SQL SERVER的連接字符串,要根據(jù)自己設(shè)置的數(shù)據(jù)庫(kù)的不同,做相應(yīng)的改動(dòng)。如果用其他的數(shù)據(jù)庫(kù)的時(shí)候,適當(dāng)改動(dòng)此字符串即可。如常見(jiàn)的ACCESS數(shù)據(jù)庫(kù)的連接串如下:

strConnString = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=路徑\xx.mdb"
(注:Access 97,這里是按文件放置路徑連接,如:c:\wwwroot\data\bbs.mdb)
strConnString = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("地址/xx.mdb")"
(注:Access 97,這里是按地址連接,如:data/bbs.mdb)
strConnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=路徑\xx.mdb;"
(注:Access 2000)
strConnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("地址/xx.mdb")

(注:Access 2000)

  注釋2為當(dāng)?shù)顷懗晒r(shí)返回userlogin的值為success,否則為unsuccess。

  B、 Flash部分

  1、在屬性面板上,將第一幀的“幀標(biāo)簽”設(shè)為“l(fā)ogin”。在第一幀的Action面板中加上:
Stop();

  2、如圖1所示,在場(chǎng)景中放置兩個(gè)文本框,兩個(gè)button,其中上面一個(gè)文本框的設(shè)置如圖2所示,另一個(gè)文本框的設(shè)置如圖3所示。

圖01

圖02

圖03

  3、新建一個(gè)組件,命名為“l(fā)oginloop”,在第一幀的Action面板中加上下面語(yǔ)句:

_root.count = 0;
stop();

  在第5幀上插入關(guān)鍵幀,在Action面板上加入下面的語(yǔ)句:

if (!(_root.userlogin)) {
_root.count = _root.count + 1;
if (_root.count > 50)
{
_root.gotoAndPlay("netfalse");
_root.loginloop.gotoAndStop(1);
}
_root.loginloop.gotoAndPlay(2);
}
if (_root.userlogin == "success")
{
_root.gotoAndPlay("main");
_root.loginloop.gotoAndStop(1);
}
if (_root.userlogin == "unsuccess")
{
_root.gotoAndPlay("loginfalse");
_root.loginloop.gotoAndStop(1);
}

  上面第一個(gè)if語(yǔ)句是判斷userlogin這個(gè)值是否已經(jīng)從服務(wù)器端傳過(guò)來(lái),如果沒(méi)有的話,就繼續(xù)循環(huán)等待,當(dāng)循環(huán)到一定的時(shí)候,就跳轉(zhuǎn)到出錯(cuò)界面。第二個(gè)if語(yǔ)句是登陸成功,跳轉(zhuǎn)到顯示主題界面。第三個(gè)if語(yǔ)句是登陸不成功,跳轉(zhuǎn)到登陸失敗界面。

  4、將組件“l(fā)oginloop”從圖庫(kù)中拖到場(chǎng)景中,將其實(shí)例名設(shè)為“l(fā)oginloop”。

  5、、在場(chǎng)景中登陸B(tài)utton的Action面板中增加下面的語(yǔ)句:

on (release) {
if (length(_root.username) == 0) {
_root.username = "請(qǐng)輸入名字";
} else if (length(_root.userpwd) == 0) {
_root.username = "請(qǐng)輸入密碼";
}
if ((length(_root.username) != 0)and (length(_root.userpwd) != 0)) {
loadVariables("login.asp?username=" add _root.username add "&userpwd=" add _root.userpwd, this, "POST");
_root.loginloop.gotoAndPlay(2);
}
}

  這是向服務(wù)器端發(fā)送請(qǐng)求,同時(shí)讓“l(fā)oginloop”開(kāi)始循環(huán)。

  6、在主場(chǎng)景中的第5幀中插入關(guān)鍵幀,將此幀命名為“l(fā)oginfalse”,此幀場(chǎng)景中的布局如圖4所示。在幀的Action面板中增加下面的語(yǔ)句:

圖04

stop();
在“返回”Button的Action面板中增加下面的語(yǔ)句:
on(release){
_root.gotoAndStop("login");
}

  這是登陸出錯(cuò)時(shí)顯示的界面。

  C、 小結(jié)與提高

  登陸部分功能就算完成, Flash部分的第3步和第5步是比較關(guān)鍵,也是比較常用的技巧。其中第3步又可以采用定時(shí)的方法來(lái)實(shí)現(xiàn),在一個(gè)時(shí)間段中不斷檢查是否已經(jīng)有返回值,根據(jù)相應(yīng)的條件處理各種流程。

  二、查看主題部分

  查看主題部分的原理為:向服務(wù)器段發(fā)送請(qǐng)求,取得相應(yīng)的返回值后,顯示在對(duì)應(yīng)的文本框中,并控制相應(yīng)元素的顯示情況。

  A、 Asp部分

  新建一個(gè)空白文件,命名為issue.asp,內(nèi)容如下:

<%
num = 0
nowpage = request("nowpage")
if nowpage = "" then
nowpage = 1
end if
set conn=Server.CreateObject("ADODB.Connection")
conn.open "Driver={SQL Server};SERVER=192.168.1.32;DATABASE=pywz" ‘注釋1
set rstemp=Server.CreateObject("ADODB.Recordset")
rstemp.cachesize = 5
sqltemp="select * from BbsInfo order by ID"
rstemp.open sqltemp,conn, 1, 1
if not(rstemp.bof and rstemp.eof) then
rstemp.MoveFirst
rstemp.pagesize = 8 ‘注釋2
maxpage=cint(rstemp.pagecount)
rstemp.absolutepage=nowpage
'nowpage maxpage sub1 author1 sub2 author2 ...... subN authorN num
response.Write("nowpage=" & nowpage & "&")
response.Write("maxpage=" & maxpage & "&")
do while not rstemp.EOF and num < rstemp.pagesize
if len(trim(rstemp("Title"))) >27 then ‘注釋3
strTitle = Mid(trim(rstemp("Title")),0,27) + "..."
else
strTitle = trim(rstemp("Title"))
end if
response.Write("author" & num & "=" & trim(rstemp("Author")) & "&" & "id" & num & "=" & trim(rstemp("ID")) & "&" &"sub" & num & "=" & strTitle & "&")
num = num + 1
rstemp.MoveNext
loop
response.Write("num=" & num)
end if
rstemp.close
conn.close
%>

  其中注釋1是數(shù)據(jù)庫(kù)的連接字符串,如何改動(dòng)可參見(jiàn)第一部分。注釋2是設(shè)定每一次發(fā)送的記錄條數(shù)為8條。注釋3所在是控制發(fā)送的標(biāo)題的字符長(zhǎng)度小于27個(gè)。

  B、 Flash部分

  1、在主場(chǎng)景的第10幀上插入關(guān)鍵幀,將此幀命名為“mian”,場(chǎng)景中的布局如圖5所示。在此幀的Action面板中增加如下語(yǔ)句:

圖05


loadVariables("issue.asp", this, "POST"); ‘注釋1
setProperty("_root.pageload", _visible, "1"); ‘注釋1
setProperty("_root.pagedown", _visible, "0");
setProperty("_root.pageup", _visible, "0");
setProperty("_root.sb0", _visible, "0");
setProperty("_root.sb1", _visible, "0");
setProperty("_root.sb2", _visible, "0");
setProperty("_root.sb3", _visible, "0");
setProperty("_root.sb4", _visible, "0");
setProperty("_root.sb5", _visible, "0");
setProperty("_root.sb6", _visible, "0");
setProperty("_root.sb7", _visible, "0");
setProperty("_root.db0", _visible, "0");
setProperty("_root.db1", _visible, "0");
setProperty("_root.db2", _visible, "0");
setProperty("_root.db3", _visible, "0");
setProperty("_root.db4", _visible, "0");
setProperty("_root.db5", _visible, "0");
setProperty("_root.db6", _visible, "0");
setProperty("_root.db7", _visible, "0");
_root.su0 = "";
_root.su1 = "";
_root.su2 = "";
_root.su3 = "";
_root.su4 = "";
_root.su5 = "";
_root.su6 = "";
_root.su7 = "";
_root.au0 = "";
_root.au1 = "";
_root.au2 = "";
_root.au3 = "";
_root.au4 = "";
_root.au5 = "";
_root.au6 = "";
_root.au7 = "";
_root.textnum = "";
stop();

  注釋1為向服務(wù)器發(fā)送請(qǐng)求,注釋2以下部分為初始化場(chǎng)景中的各個(gè)控件。

  2、將場(chǎng)景中所有的文本框的類型都設(shè)置為“動(dòng)態(tài)文本”,將“主題”下面的文本框變量依次命名為su0、su1、su2、su3、su4、su5、su6、su7。將“作者”下面的文本框變量依次命名為au0、au1、au2、au3、au4、au5、au6、au7。

  3、新建一個(gè)組件,命名為“issueloop”,在組件的第一幀的Action面板上加入如下語(yǔ)句:

_root.count = 0;
stop();

  在第五幀上插入關(guān)鍵幀,在Action面板上插入如下語(yǔ)句:

if (!(_root.num)) { ‘注釋1
_root.count = _root.count+1;
// _root.su0 = "num1 = " add _root.num;
if (_root.count>50) {
_root.gotoAndPlay("netfalse");
_root.issueloop.gotoAndStop(1);
_root.count =0;
}
_root.issueloop.gotoAndPlay(3);
} else { ‘注釋2
if (_root.num>=1) {
_root.su0 = _root.sub0;
_root.au0 = _root.author0;
setProperty("_root.sb0", _visible, "1");
setProperty("_root.db0", _visible, "1");
}else
{ _root.su0 = "";
_root.au0 = "";
setProperty("_root.sb0", _visible, "0");
setProperty("_root.db0", _visible, "0");
}
if (_root.num>=2) {
_root.su1 = _root.sub1;
_root.au1 = _root.author1;
setProperty("_root.sb1", _visible, "1");
setProperty("_root.db1", _visible, "1");
}else {
_root.su1 = "";
_root.au1 = "";
setProperty("_root.sb1", _visible, "0");
setProperty("_root.db1", _visible, "0");
}
if (_root.num>=3) {
_root.su2 = _root.sub2;
_root.au2 = _root.author2;
setProperty("_root.sb2", _visible, "1");
setProperty("_root.db2", _visible, "1");
}else
{ _root.su2 = "";
_root.au2 = "";
setProperty("_root.sb2", _visible, "0");
setProperty("_root.db2", _visible, "0");
}

if (_root.num>=4) {
_root.su3 = _root.sub3;
_root.au3 = _root.author3;
setProperty("_root.sb3", _visible, "1");
setProperty("_root.db3", _visible, "1");
}else {
_root.su3 = "";
_root.au3 = "";
setProperty("_root.sb3", _visible, "0");
setProperty("_root.db3", _visible, "0");

}
if (_root.num>=5) {
_root.su4 = _root.sub4;
_root.au4 = _root.author4;
setProperty("_root.sb4", _visible, "1");
setProperty("_root.db4", _visible, "1");
}else {
_root.su4 = "";
_root.au4 = "";
setProperty("_root.sb4", _visible, "0");
setProperty("_root.db4", _visible, "0");
}
if (_root.num>=6) {
_root.su5 = _root.sub5;
_root.au5 = _root.author5;
setProperty("_root.sb5", _visible, "1");
setProperty("_root.db5", _visible, "1");
}else {
_root.su5 = "";
_root.au5 = "";
setProperty("_root.sb5", _visible, "0");
setProperty("_root.db5", _visible, "0");

}

if (_root.num>=7) {
_root.su6 = _root.sub6;
_root.au6 = _root.author6;
setProperty("_root.sb6", _visible, "1");
setProperty("_root.db6", _visible, "1");
}else{ _root.su6 = "";
_root.au6 = "";
setProperty("_root.sb6", _visible, "0");
setProperty("_root.db6", _visible, "0");
}
if (_root.num>=8) {
_root.su7 = _root.sub7;
_root.au7 = _root.author7;
setProperty("_root.sb7", _visible, "1");
setProperty("_root.db7", _visible, "1");
}
else {
_root.su7 = "";
_root.au7 = "";
setProperty("_root.sb7", _visible, "0");
setProperty("_root.db7", _visible, "0");
}
_root.textnum = "共" add _root.maxpage add "頁(yè),此第" add _root.nowpage add "頁(yè)"; ‘注釋3
if (_root.maxpage<=1) {
setProperty("_root.pagedown", _visible, "0");
setProperty("_root.pageup", _visible, "0");
}
if (_root.maxpage>1) {
if (_root.nowpage<_root.maxpage) {
setProperty("_root.pagedown", _visible, "1");
} else {
setProperty("_root.pagedown", _visible, "0");
}
if (_root.nowpage>1) {
setProperty("_root.pageup", _visible, "1");
} else {
setProperty("_root.pageup", _visible, "0");
}
}
_root.issueloop.gotoAndStop(1);
_root.count =0;
}

  此Action的前半部分是控制內(nèi)容的顯示,最后幾個(gè)if語(yǔ)句是控制翻頁(yè)Button的顯示。其中注釋1部分為檢查是否已經(jīng)有返回值,未返回則繼續(xù)循環(huán)。注釋2部分是根據(jù)返回的記錄條數(shù)處理記錄的顯示情況。注釋3部分是根據(jù)記錄的條數(shù)和返回的記錄條數(shù)來(lái)控制上一頁(yè)/下一頁(yè)按鈕的顯示情況。

  4、將組件“issueloop”拖到場(chǎng)景中,命名為“issueloop”。

  5、將“下載”Button命名為“pageload”,在其Action面板上增加下面的語(yǔ)句:

on (release)
{_root.issueloop.gotoAndPlay(2);
setProperty("_root.pageload", _visible, "0");
}

  這是讓issueloop開(kāi)始循環(huán)。將其放在button的Action上面是為了能讓大家更清楚的看到效果,一般可以將其放置在幀的觸發(fā)事件中,這樣就可以自動(dòng)開(kāi)始循環(huán)。

  6、將“上一頁(yè)”Button命名為“pageup”,在其Action面板上增加下面的語(yǔ)句:

on (release){
loadVariables("issue.asp?nowpage=" add (Number(_root.nowpage) - 1), this, "POST");
_root.issueloop.gotoAndPlay(2);
}

  將“下一頁(yè)”Button命名為“pagedown”,在其Action面板上增加下面的語(yǔ)句:

on (release){
loadVariables("issue.asp?nowpage=" add (Number(_root.nowpage) + 1), this, "POST");
_root.issueloop.gotoAndPlay(2);
}

  將兩個(gè)Button之間的文本框的變量命名為“textnum”,文本類型為“動(dòng)態(tài)文本”。

  上一頁(yè)、下一頁(yè)的Action其實(shí)也就是再向服務(wù)器端發(fā)送“查看主題”的請(qǐng)求,只是發(fā)送的nowpage這個(gè)參數(shù)不同而已。

  C、 小結(jié)與提高

  查看主題部分完成了,原理不會(huì)非常復(fù)雜,但實(shí)現(xiàn)起來(lái)有點(diǎn)繁瑣,這是論壇比較復(fù)雜的部分。其中在Asp的實(shí)現(xiàn)部分比較有技巧,只是傳送了一個(gè)nowpage參數(shù),就可以實(shí)現(xiàn)分頁(yè)的效果。


  • 作者:互聯(lián)網(wǎng)  來(lái)源:本站整理  發(fā)布時(shí)間:2005-08-21 00:41:19


------------------------------- · 相關(guān)文檔瀏覽 · --------------------------------------------------------------------- · 熱門文檔瀏覽 · -------------------------------------