不过flash对中文的支持不好,有小小的缺字的问题喔,英文就没问题。我自己的完整的聊天室是自己写了自己的编码解码函数来解决中文显示缺字的问题的,不知道其他仁兄有什么其他办法,这里放出来的是适合初学flash+asp的朋友学习用的版本,没有特殊的函数,比较简单,呵呵 本例子包括两个文件,chat.asp和chat.swf 新建一个chat.asp文件 写入
<% ''''''''不用数据库,直接用application保存记录,这里我设定只保留14条 if request.form("msgs")<>"" then ''''''''如果有消息就插入到application("msgs14")中,1-13消息上移 for i = 1 to 13 application("msgs"&i)=application("msgs"&i+1) application("user"&i)=application("user"&i+1) next application("msgs14")=request.form("msgs") ''''''''保存消息 application("user14")=request.form("user") ''''''''保存消息来源用户名 end if ''''''''无论有没消息输入,只要调用本脚本都会输出记录列表 for i = 1 to 14 response.write "msgs"&i&"="&Server.URLEncode(application("msgs"&i))&"&" response.write "user"&i&"="&Server.URLEncode(application("user"&i))&"&" next %>
保存,放你的能运行asp的空间或本地站点上去吧。 新建一个fla文件 在第一帧用动态文本框出消息窗口,输入文本框出用户名和消息输入框,还要做一个发送的按钮,如下图 本例子中,消息窗口设定实例名为msgsbox,连接变量txt;用户名框连接变量username;消息输入框连接变量msgs;发送按钮的实例名为btsend
第一帧写上脚本
aspurl="http://www.511340.com/chat.asp"; //你的chat.asp文件的地址 sendvar=new LoadVars(); loadvar=new LoadVars(); //sendmsg函数,发送消息,并取得当前聊天记录列表 sendmsg=function(msg){ sendvar.msgs=msg; //将传入的消息保存到sendvar里 sendvar.user=username; //将用户名保存到sendvar sendvar.sendAndLoad(aspurl,loadvar,"POST"); //sendvar里参数发送,由loadvar接收 }; //当loadvar接收数据成功就更新消息列表 loadvar.onLoad=function(success){ if(success){ txt=""; //窗口清空,重新写入当前消息列表 for(i=1;i<=14;i++){ txt+=loadvar["user"+i]+":"+loadvar["msgs"+i]+"\r"; } msgsbox.scroll=msgsbox.maxscroll; //将文本的滚动条置于底部 } }; setInterval(sendmsg,1000);//每秒不带消息发送,也就是直接取得记录列表,刷新画面
在按钮btsend身上写上
on(release, keyPress "<Enter>"){ //点击松开按钮或者键盘直接回车 sendmsg(msgs); //将消息输入框内容发送出去 msgs=""; //消息框清空 } 好啦,保存运行吧 这里是测试地址http://www.511340.com/chat.html 源文件:
点击浏览该文件 |