万卷书   首页 > 电脑书籍 > Flash > Flash 与 Asp结合使用实例之二 聊天室的实现
 
  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.htm?content=" add _root.txtsend add "&username=" add _root.username, this, "POST");
  _root.sendloop.gotoAndPlay(2);
  _root.txtsend = "";
 }
}


 

  注释1:判断要发送的内容是否为空,为空则显示警告信息。
  注释2:若发送的内容不为空,向服务器端发送聊天的内容和用户名。


 

  C、小结与提高


 

  跟登陆部分差不多的流程,先发送请求,然后等待返回的值,根据返回的值来执行相应的操作。这里要注意的是变量的命名不能跟前面重复,还有后面要用到的时间变量也要先定义。这里的实现比较简单,只是简单介绍了流程,如果要考虑一下发送动作、发送图标、私聊等等,还有非常多的工作要做。


 

  四、显示聊天内容


 

  显示聊天内容的基本原理是从Flash端发送要显示聊天内容的请求,在服务器端将application("AllCanSee")的内容发送到Flash端,Flash端显示出来。


 

  A、asp部分


 

  1、新建一个空白文件,命名为content.htm,其内容如下:


 

<%
username = request("username")
tempstr = "cflag=true"
tempstr = tempstr & "&ccontent=" & application("AllCanSee")          //注释1
response.Write(tempstr)
%>


 

  注释1:向Flash端返回标志位和聊天内容。


 

 

上一页 下一页