网学网为广大网友收集整理了,基于ASP与FLASH的聊天室的设计,希望对大家有所帮助!
客服咨询,网学网竭诚为您服务,本站永久域名:myeducs.cn |
5 flash聊天室的实现 5.1 聊天室的登陆 登陆部分的基本原理是:在Flash端输入用户名和密码,通过Asp查询数据库,如果用户名和密码正确,就跳转到聊天主界面如图1-3,否则就跳转到登陆失败界面。 5.1.1 asp部分 1、 新建一个空白文件,命名为global.asa,内容如下: <script language="vbscript" runat="server"> sub application_onstart application("VisitorNum")=0 application("VisitorName")="" application("AllCanSee")="<br>" end sub </script> 注释:上面是一个global文件,定义了几个application对象,sub application_onstart的意思是在启动服务的时候触发,初始化这些对象。Application对象可以在几个网页之间保持内容,application("VisitorNum")中的是当前在线人数,application("VisitorName")中的是当前在线人员名单,application("AllCanSee")中的是当前的聊天内容。 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 %> 注释1:取得从Flash端传过来的用户名和密码。 注释2:打开一个数据库的连接,读者要根据数据库的类型,数据库所在的ip,数据库的实例名做相应的修改。 注释3:根据用户名和密码构造一个sql语句。 注释4:如果在数据库中存在所输入的用户名和密码,将application("VisitorNum")加1,将当前用户名保存在application("VisitorName"),返回登陆成功的标志位userlogin位success。 注释5:用户名或密码错误,返回登陆失败的标志位userlogin位unsuccess。 5.1.2 Flash部分 1、在属性面板上,将第一帧的“帧标签”设为“login”。在第一帧的Action面板中加上: Stop(); 2、在场景中放置两个文本框,两个button,其中上面一个文本 另一个文本框。 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); } 注释1:判断结果是否已经从服务器端返回,不是的话,计数器加一。 注释2:判断计数器是否已经到50,是的话,跳转到网络超时界面。 注释3:判断返回的结果是否位success,是则跳转到聊天的主界面。 注释4:若返回的结果为unsuccess,跳转到登陆出错界面。 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)) { //注释2 loadVariables("login.asp?username=" add _root.username add "&userpwd=" add _root.userpwd, this, "POST"); _root.loginloop.gotoAndPlay(2); timeflag = 0; } } 注释1:判断用户名和密码是否为空。 注释2:用户名和密码不为空,向服务器端发送用户名和密码。 6、在主场景中的第5帧中插入关键帧,将此帧命名为“netfalse”,在此帧场景中添加“网络连接超时……”的信息。在帧的Action面板中增加下面的语句: stop(); 7、在主场景中的第10帧中插入关键帧,将此帧命名为“loginfalse”,在此帧场景中添加“用户名或密码错”的信息。在帧的Action面板中增加下面的语 句: stop(); 5.1.3小结与提高 在Asp部分要注意的是当登陆成功后,要在application("VisitorName")和application("VisitorNum")对象中加上相应的值。在Flash部分中,先用loadVariables()发送请求,然后启动另外一个clip等待返回的值,这是一种比较好的操作方法。 5.2 发送 发送部分的基本原理是从Flash端发送聊天内容到服务器端,在服务器端将聊天内容添加到application("AllCanSee")对象中,并将修改后的application("AllCanSee")对象的内容返回到Flash端。 |
本站发布的计算机毕业设计均是完整无错的全套作品,包含开题报告+程序+论文+源代码+翻译+答辩稿PPT |
本文选自计算机毕业设计http://myeducs.cn |