网上有许多教程都这样写:
最简单的计算在线人数的方法
通过 application.clients.length 就可以了
客户端需要的话可以call服务器端定义的函数,最方便的还是使用共享对象来存取了,下面给出完整的实现方法。
在服务器端的main.asc文件中写入:
application.onAppStart = function() {
this.users_so = SharedObject.get('users_so');
};
application.onConnect = function(newClient, name)
{
// Accept the client's connection
application.acceptConnection(newClient);
i = application.clients.length;
this.users_so.setProperty('users', i);
}
application.onDisconnect = function(client)
{
i = application.clients.length;
this.users_so.setProperty('users', i);
}
在客户端fla文件中添加:
users_so = SharedObject.getRemote('users_so', client_nc.uri, false);
// 更新在线用户数
users_so.onSync = function(list) {
txtNumberUsers.text = users_so.data.users;
//==============================
//==============================
但我却取不到?!查遍文档,发现
SharedObject.get()方法,还需要在服务端SharedObject.get()命令中
为persistence参数传递一个值true来创建仅永久于服务器的remote共享对象...
也就是说,在上面的教程中,应该这样
application.onAppStart = function() {
this.users_so = SharedObject.get('users_so',true);
};
才行。
我不知道写教程者这样是否正常,反正我这不行,必须加了true才成。
[文章热度:]
上一页:FMS播放文件结构的设置
下一页:FMS做在线视频录制