SharedObject对象详解

xiaoxiao2026-08-27  4

SharedObject对象详解 本文来源于 冰山上的播客 http://xinsync.xju.edu.cn , 原文地址:http://xinsync.xju.edu.cn/index.php/archives/1729 最多人不懂的就是:那个list参数 看代码:my_rso = SharedObject.getRemote(”myRSO”, NC.uri, true); 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( ); 这样client端会收到 若干个插槽信息对象,所有的code都为”delete”,表示若干个item被删除 然而这样: so = SharedObject.get(”某个so”); so.clear( ); client端就只会收到一个插槽信息对象,code属性为“clear” 本文来源于 冰山上的播客 http://xinsync.xju.edu.cn , 原文地址:http://xinsync.xju.edu.cn/index.php/archives/1729
转载请注明原文地址: https://www.6miu.com/read-5051920.html

最新回复(0)