Flash Media Server 起步(6)写个简单的聊天室

本文介绍了一个简单的基于 Flash Media Server 的聊天室应用实现。通过共享对象进行客户端间的消息传递,无需服务器端介入。文章提供了详细的代码示例,并解释了如何限制聊天记录数量以确保性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Flash Media Server 起步(6)写个简单的聊天室
该页内容已经修改并整理到了fms入门教程内,您可以点击下边的链接查看最新修改的内容
http://www.nshen.net/blog/article.asp?id=509

说明:很简单的东西,基本上就是共享对象的运用,没有用到服务器端,大型聊天室可能不会这么做,这个只适用于初学者:/

注释很详细,不说多了:


//用户名
myname="游客"
//建立连接
var myNC = new NetConnection();
myNC.connect("rtmp://localhost/smallchat");

//搞到rso
Talk_SO = SharedObject.getRemote("Talk", myNC.uri, false);
Talk_SO.onSync = function() {
  //先把聊天文本框清空
  remoteText.text = "";
  //把聊天列表显示出来,talklist的格式就是[谁谁说:啊啊啊,谁谁谁说:2222]
  var t = this.data.talklist;
  for (var i = 0; i<t.length; i++) {
    writeln(t[i]);
  }
};
Talk_SO.connect(myNC);

//发消息函数
function post() {
  //如果不存在talklist就建一个,这里没用server端,是个技巧
  if (Talk_SO.data.talklist[0] == undefined) {
    Talk_SO.data.talklist = [];
  }
  //限制数组长度,是个队列。保证里边有5条消息,当然也可以更多,但如果没有限制,flash会垮的
  if (Talk_SO.data.talklist.length>=5) {
    Talk_SO.data.talklist.shift();
  }
  //把消息装到so里
  Talk_SO.data.talklist.push(myname+"说:"+meText.text);
  meText.text = "";
}
//文字显示,换行
function writeln(msg) {
  remoteText.text += msg+"/n";
  remoteText.vPosition =remoteText.maxVPosition
}
//-----------------------------------------------
Btn.onRelease = function() {
  post();
};
this.onKeyDown = function() {
  if (Key.isDown(Key.ENTER)) {
    post();
  }
};
Key.addListener(this);

原文件

http://www.nshen.net/blog/attachments/200602/smallchat.fla  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值