Flash Media Server 起步(13)再说说SO....onSync(list)
来源:互联网 发布:内存溢出 java 编辑:程序博客网 时间:2024/06/03 15:47
很早以前写过so,当时草草了事,很多人都不太会用。。。
* 最多人不懂的就是:那个list参数
看代码:
在onSync回调中我们可以知道,我们的my_rso被改变了,但my_rso里具体什么改变了呢? 我们就要分析这个 list参数 了
list参数其实是一个对象数组 ,首先它是一个数组,里边装了很多对象(Object),每一个对象都包括了SharedObject中一个插槽(slot)的改动信息。我暂时给他起名叫插槽信息对象。。。这名字太猥亵了。。但我就这么叫了。。
插槽信息对象包含两个属性,name 和 code,偶尔还会有个oldValue?我不太常用,不说它
name 描述被改变的属性名
code 描述该属性的改变方式 ,有可能为以下几种值:"success" , "change" , "delete" , "reject" , "clear" ,具体含义后边说
说白了这个插槽信息对象大概就是这么个样子:
表示x属性被修改成功
要得到这些插槽信息对象就要for in 这个list参数
for (var i in list) {
list[i] 就是插槽信息对象
}
要分析具体so哪改变了,就是分析list[i],比如
if(list[i].code=="change") trace("list[i].name"+被+"change了")
if(list[i].code=="delete") trace("list[i].name"+被+"delete")
“change”是啥?“delete”是啥?
"success" , "change" , "delete" , "reject" , "clear" 具体含义:
success : 表示当前影片修改so的插槽获得了成功
change : 表示so的插槽被别人修改,或填加
也就是说,你修改so的某个属性成功了会收到 "success" ,与此同时其他影片会收到 "change"
reject : 拒绝修改
例如发生在两个或多个客户端同时要修改一个so的插槽,这时候fms会只让一个client修改,并返回"success" 其他的会收到"reject"
delete , clear : 这个好理解,一个是删除,一个是清空,看例子:
比如服务器端删除某个so
这样client端会收到 若干个插槽信息对象,所有的code都为"delete",表示若干个item被删除
然而这样:
client端就只会收到一个插槽信息对象,code属性为“clear”
完。
本来还有点关于so的想写写,比如so的更新频率so.setFps。。。没想到一个list参数写了这么多 -____-b ,饿了不写了,心情好了再写。。。
ps.有错误欢迎提~~最近感觉写blog没意思了,所以一直没太贴东西。访问量也下来了。。。。。
* 最多人不懂的就是:那个list参数
看代码:
my_rso = SharedObject.getRemote("myRSO", NC.uri, true);
my_rso.onSync = function(list) {//.......};
my_rso.connect(NC); //连接
my_rso.onSync = function(list) {//.......};
my_rso.connect(NC); //连接
在onSync回调中我们可以知道,我们的my_rso被改变了,但my_rso里具体什么改变了呢? 我们就要分析这个 list参数 了
list参数其实是一个对象数组 ,首先它是一个数组,里边装了很多对象(Object),每一个对象都包括了SharedObject中一个插槽(slot)的改动信息。我暂时给他起名叫插槽信息对象。。。这名字太猥亵了。。但我就这么叫了。。
插槽信息对象包含两个属性,name 和 code,偶尔还会有个oldValue?我不太常用,不说它
name 描述被改变的属性名
code 描述该属性的改变方式 ,有可能为以下几种值:"success" , "change" , "delete" , "reject" , "clear" ,具体含义后边说
说白了这个插槽信息对象大概就是这么个样子:
{name:"x",code:"success"}
表示x属性被修改成功
要得到这些插槽信息对象就要for in 这个list参数
for (var i in list) {
list[i] 就是插槽信息对象
}
要分析具体so哪改变了,就是分析list[i],比如
if(list[i].code=="change") trace("list[i].name"+被+"change了")
if(list[i].code=="delete") trace("list[i].name"+被+"delete")
“change”是啥?“delete”是啥?
"success" , "change" , "delete" , "reject" , "clear" 具体含义:
success : 表示当前影片修改so的插槽获得了成功
change : 表示so的插槽被别人修改,或填加
也就是说,你修改so的某个属性成功了会收到 "success" ,与此同时其他影片会收到 "change"
reject : 拒绝修改
例如发生在两个或多个客户端同时要修改一个so的插槽,这时候fms会只让一个client修改,并返回"success" 其他的会收到"reject"
delete , clear : 这个好理解,一个是删除,一个是清空,看例子:
比如服务器端删除某个so
so = SharedObject.get("某个so");
so.lock( );
var names = so.getPropertyNames( );
for (i in names) {
so.setProperty(names[i], null);
}
so.unlock( );
so.lock( );
var names = so.getPropertyNames( );
for (i in names) {
so.setProperty(names[i], null);
}
so.unlock( );
这样client端会收到 若干个插槽信息对象,所有的code都为"delete",表示若干个item被删除
然而这样:
so = SharedObject.get("某个so");
so.clear( );
so.clear( );
client端就只会收到一个插槽信息对象,code属性为“clear”
完。
本来还有点关于so的想写写,比如so的更新频率so.setFps。。。没想到一个list参数写了这么多 -____-b ,饿了不写了,心情好了再写。。。
ps.有错误欢迎提~~最近感觉写blog没意思了,所以一直没太贴东西。访问量也下来了。。。。。
- Flash Media Server 起步(13)再说说SO....onSync(list)
- Flash Media Server起步
- Flash Media Server起步(1)初识
- Flash Media Server 起步(2)连接
- Flash Media Server 起步(7)与server端交互
- Flash Media Server 起步(3)远程共享
- Flash Media Server 起步(4)视频,流。。。
- Flash Media Server 起步(5)连接的一些细节
- Flash Media Server 起步(9)在线列表。。
- Flash Media Server 起步(10)中文编码问题
- Flash Media Server 起步(11)判断影片结束
- Flash Media Server 起步
- Flash Media Server 起步(8)client与server交互进阶
- Flash Media Server 起步(6)写个简单的聊天室
- Flash Media Server 起步(12)只允许客户打开一个客户端
- Flash Media Server
- Flash Media Server 2.0
- Flash Media Server 入门教程
- script学习
- Flash Media Server 起步(11)判断影片结束
- Today ,I will do some intresting things at Csdn.....
- 熊猫终于过去了....
- Flash Media Server 起步(12)只允许客户打开一个客户端
- Flash Media Server 起步(13)再说说SO....onSync(list)
- 学习c++的50条忠告(转载)
- .Net平台开发的技术规范与实践精华总结
- (备忘)TFS安装,不一定能成功,本人就没成功,但可以做参考
- IIS状态代码的含义
- 在TURBO C中什么是“死循环”?
- 实战dwr
- 容器的概念
- 发现一台机器中同时运行多个Oracle实例时。。。