本文主要是介绍FMS 教程(SharedObject)用户列表,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
FMS实现用户列表,一般都是利用List组件,和SharedObject来实现的。
接下来我就教你怎么做用户列表。ready..
先看用户端:
新建一个as2.0文档,从组件面板中拖出List组件到舞台上,命名为userList
点击时间轴第一帧,按F9
//code begin
var nc:NetConnection = new NetConnection()
nc.onStatus = function(info){
trace(info.code)
}
nc.connect("rtmp:/userList","lulu");
//getRemote 连接到服务器远端的so,false表示是临时的so,或者true为记录在服务器。
//如果这里改为true,那么相应的在服务器端也要改为true,不然两者会冲突....
var userList_so:SharedObject =SharedObject.getRemote("list", nc.uri, false);
userList_so.onSync = function(){
//只要列表变化 则将list清空
_root.userlist.removeAll()
//循环so的属性,将属性添加到list中
for(var p in this.data){
_root.userlist.addItem(p)
}
}
//这是最关键的,并且要在onSync 后connect
userList_so.connect(nc)
//code end
再看服务器端:
在applications目录下新建一个目录:userList
新建一个main.asc
用编辑器打开,
//code start
application.onAppStart = function ()
{
//服务器端就不是getRemote了,而是get,这里的list和用户端的list要保持一致,意为连接到同一个so。
//如果客户端改为true,这里也要改为true,保持一致
userList_so = SharedObject.get ("list","false");
}
application.onConnect = function (client, name)
{
//给client写入userName 属性,以便断开的时候读取
client.userName = name;
//写入属性,以用户名为属性
userList_so.setProperty (name, name);
return true;
}
application.onDisconnect = function(client)
{
//断开的时候,从列表中清除
userList_so.setProperty(client.userName,null);
}
//code end
好了,回到flash,ctrl+enter 你看到列表中的lulu了么。。。
改变nc.connect("rtmp:/userList","lulu")中的lulu 为其它用户名,另存几个flash,同时打开,看看是不是能看见所有人了?
server端会记录每一个client的所有信息,你可以往client里面写入属性,以便在需要的时候读取。
client的类型为object:
基本属性有:
ip、.secure、uri、referrer、agent、protocol
你可以在onConnect 的时候输出如下代码察看
application.onConnect = function (client, name)
{
trace(client.ip+":"+client.protocol)
}
这篇关于FMS 教程(SharedObject)用户列表的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!