一、本地soj:对于保存在本地的sol,利用getLocal () 来定义一个sharedobject ,如var so:SharedObject = SharedObject.getLocal("savedData"); 该函数在sharedobject类是一个静态函数,所以可以直接用类名shardobject调用,其定义是public static function getLocal(name:String, localPath:String = null, secure:Boolean = false):SharedObject
二、远程rso:对于保存在服务器的fso,利用getremote()来定义一个sharedobject,并且用myrso.connect()(myrso是一个shareobj的实例) 连接到某一个netconnetion以连接到服务器,如
getremote()的定义是getRemote () methodvar myNC:NetConnection = new NetConnection();
myNC.connect("rtmp://[yourDomain].com/applicationName");
var myRemoteSO:SharedObject = SharedObject.getRemote("mo", myNC.uri, false);
myRemoteSO.connect(myNC);
public static function getRemote(name:String, remotePath:String = null, persistence:Object = false, secure:Boolean = false):SharedObject
三、设置协议:对于保存在服务器端的rso必须注意AMF的版本,因为要保存数据到服务器,则程序与服务器必须有连接,这个连接的协议就是AMF,同前一篇日志所讲,可以单独或全局设置这个版本。
SharedObject.defaultObjectEncoding =ObjectEncoding.AMF0
或
myrso.ObjectEncoding=ObjectEncoding.AMF0
四、写数据:当以上准备工作都定义好后,就可以写数据到文件中了,利用
myrso.data.**(**是属性名)=somevar(注意不能直接赋值给data属性,即myrso.data="sshong"或者somevar是无效的;如果要删除某个属性值,可以用 delete so.data.attributeName,把这个属性值设置为null或者undefined均无效)
五、保存:对本地而言直接显式的用myrso.flush()或者当调用myrso.clear() or myrso.close()自动调用或者程序对该soj已经没有任何引用被垃圾收集器收集到时均会保存数据.