五、显示在线人数列表
显示在线人数列表的基本原理是在Flash端发送显示在线人数列表的请求,服务器端将application("VisitorName")对象的内容发送到Flash端,在Flash端显示出来。
A、asp部分
1、新建一个空白文件,命名为talker.asp,其内容如下:
<%
tempstr = "tflag=true"
tempstr = tempstr & "&talker=" & application("VisitorName") ‘注释1
response.Write(tempstr)
%>
注释1:向Flash端发送标志位和在线人数列表。
B、Flash部分
1、在主场景中拉一个对话框,属性设置如图6所示。
2、按Ctrl + F8,新建一个movie clip,命名为talkerloop,在此clip的第一帧的action面板上增加下面的语句:
_root.tcount = 0;
stop();
在clip的第5帧上插入关键帧,在其action面板上面增加如下语句:
if (!(_root.tflag)) { //注释1
_root.tcount = _root.tcount + 1;
if (_root.tcount > 50) //注释2
{
_root.gotoAndPlay("netfalse");
_root.talkerloop.gotoAndStop(1);
}
_root.talkerloop.gotoAndPlay(2);
}
if (_root.tflag == "true") //注释3
{
_root.txttalker = _root.talker;
_root.talkerloop.gotoAndStop(1);
}
注释1:判断是否已经从服务器端返回值,若未的话则计数器加一。
注释2:当计数器加到50的时候,跳转到网络超时界面。
注释3:若返回的标志位为true,在文本框中显示返回的列表。
3、将talkerloop从图库拖到主场景main帧中,命名为talkeloop。
C、小结与提高
这里实现的只是一个简单的处理,在实际应用中,要考虑用户id之间的分隔符,要考虑当用户退出聊天室时对application("VisitorName")对象的处理,要实现一个完善的处理还是比较复杂的。