用Flash AS 实现聊天室
1、 新建一个空白文件,命名为global.asa,内容如下:
<script language="vbscript" runat="server">
sub application_onstart
application("VisitorNum")=0
application("VisitorName")=""
application("AllCanSee")="<br>"
end sub
</script>
2、新建一个空白文件,命名为login.asp,跟global.asa保存在同一个目录中,内容如下:
<%
username = request("username") ‘注释1
userpwd = request("userpwd")
set conn=Server.CreateObject("ADODB.Connection")
conn.open "Driver={SQL Server};SERVER=127.0.0.1;DATABASE=pywz" ‘注释2
set rs=Server.CreateObject("ADODB.Recordset")
strSql="select * from UserInfo where userid= & username & and password= & userpwd & " ‘注释3
rs.open strSql,conn, 1, 1
if not(rs.bof and rs.eof) then ‘注释4
application("VisitorNum") = application("VisitorNum") + 1
application("VisitorName") = application("VisitorName") & " " & username
Response.Write ("userlogin=success")
Else
Response.Write ("userlogin=unsuccess") ‘注释5
end if
rs.close
conn.close
%>
B、Flash部分
1、在属性面板上,将第一帧的“帧标签”设为“login”。在第一帧的Action面板中加上:
Stop();
2、如图1所示,在场景中放置两个文本框,两个button,其中上面一个文本框的设置如图2所示,另一个文本框的设置如图3所示。
3、新建一个组件,命名为“loginloop1”,在第一帧的Action面板中加上下面语句:
_root.count = 0;
stop();
在第5帧上插入关键帧,在Action面板上加入下面的语句:
if (!(_root.userlogin)) { //注释1
_root.count = _root.count + 1;
if (_root.count > 50) //注释2
{
_root.gotoAndPlay("netfalse");
_root.loginloop.gotoAndStop(1);
}
_root.loginloop.gotoAndPlay(2);
}
if (_root.userlogin == "success") //注释3
{
_root.txttime = _root.userlogin;
_root.gotoAndPlay("main");
_root.loginloop.gotoAndStop(1);
}
if (_root.userlogin == "unsuccess") //注释4
{
_root.gotoAndPlay("loginfalse");
_root.loginloop.gotoAndStop(1);
}
4、将组件“loginloop1”从图库中拖到场景中,将其实例名设为“loginloop”。
5、在场景中登陆Button的Action面板中增加下面的语句:
on (release) {
if (length(_root.username) == 0) { //注释1
_root.username = "请输入名字";
} else if (length(_root.userpwd) == 0) {
_root.username = "请输入密码";
}
if ((length(_root.username) != 0)and (length(_root.userpwd) != 0)) { //注释1 loadVariables("login.aspusername=" add _root.username add "&userpwd=" add _root.userpwd, this, "POST");
_root.loginloop.gotoAndPlay(2);
timeflag = 0;
}
应用原理主要的流程是先在Flash端发送一个请求到服务器端,然后等待从服务器端的返回值,当值返回Flash端后,根据相应的值做相应的操作。在Flash部分,跟前面的教程一样,用到的主要都是loadVariables()函数和循环等待的技巧。在Asp部分,主要用到了global.asa文件和application()属性,先定义几个application对象,然后将要保持的内容放在application对象中,要用的时候,直接从application对象中取就是了。