论坛交流
首页办公自动化| 网页制作| 平面设计| 动画制作| 数据库开发| 程序设计| 全部视频教程
应用视频: Windows | Word2007 | Excel2007 | PowerPoint2007 | Dreamweaver 8 | Fireworks 8 | Flash 8 | Photoshop cs | CorelDraw 12
编程视频: C语言视频教程 | HTML | Div+Css布局 | Javascript | Access数据库 | Asp | Sql Server数据库Asp.net  | Flash AS
当前位置 > 文字教程 > Flash AS教程
Tag:2.0,3.0菜鸟,游戏,,cs,技巧,源码,,文本,文字,函数,音乐,随机,拖拽,asp,access,xml,mc,视频教程

编写flash+asp聊天室的几大难点

文章类别:Flash AS | 发表日期:2009-8-7 11:41:05

编写flash+asp聊天室的几大难点

来说说程序几个"难点"大概的实现原理(高手免疫 goto end),需要懂一些asp其实和那些直接在网页上的聊天室差不多,只是在flash中表现而已,刷新的时候不会闪动,可以比较方便的美化界面.
   asp 方面
1,让公共聊天记录只保持固定的条数,新加入用户只能看到他加入以后的聊天记录.
挺简单的,第一天就想到了,把每条聊天记录分开用apllication变量来存.
 不太好表述了,请看源代码中的flashchat.asp,所有的处理都在里面.
2,私聊
把每个用户私聊信息存在application(session(""你的用户名""))里
如下面
chatto=Request.from("chatto")
chattxt=Request.from("chattxt")
application(session(chatto))=chattxt
Response。write(application(session("username")))
session("username")是你的用户名(在登陆时已经赋予),chatto是你要说悄悄话对象的用户名,chattxt是悄悄话内容,如果chatto="a",chattxt="你好"时,application("a")被赋予"你好",后面那句Response。write(application(session("username"))) 也只有当叫"a"的用户访问才会显示(就是application("a")的值)."b"用户访问则是输出aplication("b")的值,当然是空了.
3,实时退出
本来以为是不可能的,但没想到ie的onunload事件(在html上的js)可以在窗口关了以
后的少许时间还可以执行代码.ff不行,这里有说过http://bbs.blueidea.com/viewthread.php?tid=2803728&highlight=
在放flash的html加上onunload事件,内容是调用chatexit.asp(内容是清除session,清掉application("用户名"),并把这个用户名从列表中删掉).用xmlhttpRequest来open它就行了.(具体请看chat.htm),另外还要防止浏览器非正常关闭(死机,停电),没机会触发onunload事件.还要在Global.asa的session_onend中添加相应的代码,把
chatexit.asp的内容复制过去就好了,session的timeout时间到就执行。我在flashchat.asp中设了session.timeout=2,如果影响网站可以删掉session.timeout=2。

flash方面
这方面好像没什么难点的,简单说说了
与asp的交互是用loadvar,用sentandload来刷新(每3秒),聊天内容每3秒刷一

次,asp方面检测传过来的聊天数据,为空则不做任何处理.用户列表每15秒刷新一次(

这是flash内部的刷新).
用户列表的实现是用比较土的方法,先在asp中用一个application变量来存所有的用

户名(只在第一次进来才存,用“|"隔开),然后在flash中将它split.放到右边用代码

创建的mc上.
( 可怕,写贴过程中浏览器忽然down掉,好在写长贴时会定时备份一下,就备份到这里)

说说程序的使用
单击用户列表中的用户名可以对他悄悄话.单击上面的"公共"或"私人"来切换显示
flashchat.asp中的maxnum是设置公共区最多显示条数,默认是9,私人区没有限制.
文件很小不到20k,icq上的那个130k,界面也是同样简陋的,可能是用了图形组件.
因为我不想用组件所以临时自定义了两个简单的滚动条类,没有箭头的.忘了说了,因为ff
onunload的原因,所以把非ie浏览器禁了(在chat.htm里).

视频教程列表
文章教程搜索
 
Flash AS推荐教程
Flash AS热门教程
看全部视频教程
购买方式/价格
购买视频教程: 咨询客服
tel:15972130058