Flash教程:flash与asp结合应用_论坛实现案例分析1
一 、登陆部分
登陆部分的基本原理是:在Flash端输入用户名和密码,通过Asp查询数据库,如果用户名和密码正确,就跳转到登陆成功界面,否则就跳转到登陆失败界面。
A、 Asp部分
新建一个空白文件,命名为Login.asp,内容如下:
<%
username = request("username")
userpwd = request("userpwd")
set conn=Server.CreateObject("ADODB.Connection")
conn.open "Driver={SQLServer};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所在的行是针对SQL SERVER的连接字符串,要根据自己设置的数据库的不同,做相应的改动。如果用其他的数据库的时候,适当改动此字符串即可。如常见的ACCESS数据库的连接串如下:
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("地址.mdb")"
(注:Access 97,这里是按地址连接,如:datas.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("地址.mdb")
(注:Access 2000)
注释2为当登陆成功时返回userlogin的值为success,否则为unsuccess。
B、 Flash部分
1、在属性面板上,将第一帧的“帧标签”设为“login”。在第一帧的Action面板中加上:
Stop();
2、在场景中放置两个文本框,两个button;
3、新建一个组件,命名为“loginloop”,在第一帧的Action面板中加上下面语句:
_root.count = 0;
stop();
在第5帧上插入关键帧,在Action面板上加入下面的语句: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);
}
上面第一个if语句是判断userlogin这个值是否已经从服务器端传过来,如果没有的话,就继续循环等待,当循环到一定的时候,就跳转到出错界面。第二个if语句是登陆成功,跳转到显示主题界面。第三个if语句是登陆不成功,跳转到登陆失败界面。
4、将组件“loginloop”从图库中拖到场景中,将其实例名设为“loginloop”。
5、在场景中登陆Button的Action面板中增加下面的语句:
on (release) {
if (length(_root.username) == 0) {
_root.username = "请输入名字";
} else if (length(_root.userpwd) == 0) {
_root.username = "请输入密码";
}
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);
}
}
这是向服务器端发送请求,同时让“loginloop”开始循环。
6、在主场景中的第5帧中插入关键帧,将此帧命名为“loginfalse”;
stop();
在“返回”Button的Action面板中增加下面的语句:
on(release){
_root.gotoAndStop("login");
}
这是登陆出错时显示的界面。