Flash聊天室的实现(5)
六、显示在线时间
显示在线时间的原理是在前面定义了一个时间变量,然后不断取得当前的时间值,两者相减并显示出来。
A、Flash部分
1、在主场景中拉一个对话框,属性设置如图7所示。此时场景中布局如图8所示。
2、按Ctrl + F8,新建一个movie clip,命名为timeloop,将timeloop拖到场景中,在clip的Action面板上面增加如下语句:
onClipEvent (load) { //注释1
timedate = new Date();
}
onClipEvent (enterFrame) {
mytime = timedate.getTime(); //注释2
_root.txttime = Math.ceil((mytime - _root.starttime)/1000); //注释3
delete timedate; //注释4
timedate = new Date();
}
注释1:当load这个clip的时候,新建一个date对象。
注释2:取得当前时间。
注释3:用当前时间减在前面所取得的时间,显示在文本框中。
注释4:删除旧的时间对象,重新生成当前的时间对象。
B、小结与提高
这里用到的计时方法是一种很常用的技巧,其关键之处是在先定义一个时间变量,然后不断更新当前的时间变量,取两者之差。注意两者的差是毫秒,要除以1000。
七、运行平台与调试技巧
至此,一个简单的聊天室就制作完成了,下面来介绍一下运行的平台和常用的调试技巧。
A、运行平台
Flash + Asp结合使用的架构运行在Windows平台上面,可以用PWS服务器(Win98)或IIS服务器(Win2k,若找不到服务器,则需要Windows安装光盘重新安装)。将上面所生成的文件放在服务器的一个虚拟目录下面,启动服务器,在浏览器中就可以看到效果了。
另外,在Web的应用中经常要用到数据库,常用的数据库有Sql server、Access和mysql。使用数据库的时候,要在控制面板的odbc数据源中设置相应的odbc参数。
B、调试技巧
虽然是Flash与Asp的结合使用,但在调试中最好将Flash和Asp分别调试。比如我是这样做的,先调试Asp部分,写好Asp部分后,在IE中输入http://localhost/chat/send.asp?content=test,看看所显示的值是否是返回的值。其他的Asp部分都可以用类似的方法。
在Flash部分,调试时最常用的方法是打印,可以用一个文本框将某些东西显示出来,也可以用trace()函数,将变量显示出来。另外也可以用flash所自带的debugger工具,查看相应变量的值。
其实,Flash也好,Asp也好,调试时最重要的是思路清晰,流程清楚,这样的话,程序的bug也会比较少。