Flash聊天室的实现[3]

6、在主场景中的第5帧中插入关键帧,将此帧命名为“netfalse”,在此帧场景中添加“网络连接超时……”的信息。在帧的Action面板中增加下面的语句:
stop();
   7、在主场景中的第10帧中插入关键帧,将此帧命名为“loginfalse”,在此帧场景中添加“用户名或密码错”的信息。在帧的Action面板中增加下面的语句:
stop();
   C、小结与提高
   在Asp部分要注意的是当登陆成功后,要在application("VisitorName")和application("VisitorNum")对象中加上相应的值。在Flash部分中,先用loadVariables()发送请求,然后启动另外一个clip等待返回的值,这是一种比较好的操作方法。
  三、发送
   发送部分的基本原理是从Flash端发送聊天内容到服务器端,在服务器端将聊天内容添加到application("AllCanSee")对象中,并将修改后的application("AllCanSee")对象的内容返回到Flash端。
   A、asp部分
   1、新建一个空白文件,命名为send.asp,其内容如下:
<%
username = request("username")
tempstr= username & " say: " & request("content") & "<br>"
application("AllCanSee") = application("AllCanSee") & tempstr ‘注释1
response.Write("sflag=true&scontent=" & application("AllCanSee")) ‘注释2
%>
   注释1:将从flash端发送来的内容添加到聊天的内容中。
   注释2:将标志位sflag和聊天的内容发送回flash端。

   B、Flash部分
   1、在主场景的第15帧中添加关键帧,将此帧命名为“main”,在帧的Action面板中增加下面的语句:
now = new Date(); //注释1
starttime = now.getTime();
stop();
   注释1:这是为计算在线时间而设的。
   2、在主场景中拉一个对话框,属性设置如图4所示。
3、按Ctrl + F8,新建一个movie clip,命名为sendloop,在此clip的第一帧的action面板上增加下面的语句:
_root.countsend = 0;
stop();
在clip的第5帧上插入关键帧,在其action面板上面增加如下语句:
if (!(_root.sflag)) { //注释1
_root.countsend = _root.countsend + 1;
if (_root.countsend > 50) //注释2
{
_root.gotoAndPlay("netfalse");
_root.sendloop.gotoAndStop(1);
}
_root.txttime = _root.countsend;
_root.sendloop.gotoAndPlay(2);
}
if (_root.sflag == "true") //注释3
{
_root.txtcontent = _root.scontent;
_root.txttime = "sssss";
_root.sflag = "";
_root.sendloop.gotoAndStop(1);
}
   注释1:判断返回的标志位,若还没从服务器返回值,计数器加一。
   注释2:当计数器加到50的时候,跳转到网络超时界面。
   注释3:若返回的值为true,将返回的聊天内容显示在场景中。
   4、将sendloop从图库拖到主场景main帧中,命名为sendloop。
   5、在主场景main帧中增加一个button,显示的内容为“发送”。在button的action面板上面增加如下语句:
on (release) {
if (length(_root.txtsend) == 0) { //注释1
_root.txtsend = "请输入内容";
}
if ((length(_root.txtsend) != 0)) { //注释2
loadVariables("send.asp?content=" add _root.txtsend add "&username=" add _root.username, this, "POST");
_root.sendloop.gotoAndPlay(2);
_root.txtsend = "";
}
}
   注释1:判断要发送的内容是否为空,为空则显示警告信息。
   注释2:若发送的内容不为空,向服务器端发送聊天的内容和用户名。
   C、小结与提高
   跟登陆部分差不多的流程,先发送请求,然后等待返回的值,根据返回的值来执行相应的操作。这里要注意的是变量的命名不能跟前面重复,还有后面要用到的时间变量也要先定义。这里的实现比较简单,只是简单介绍了流程,如果要考虑一下发送动作、发送图标、私聊等等,还有非常多的工作要做。

转载于:https://www.cnblogs.com/kangtr/archive/2007/01/30/634574.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值