as2 sharedObject
ShareObject能在as1.0和flash play6以上的版本得到支持,ShareObjec是以原生类获得支持,它被用来实现类似于cookies或者session的功能。
ShareObjec默认使用有限的数据存储量。可以在播放器设置中修改它的存储量大小。
因此在使用前需要用SOInstance.getSize()判断一下是否有足够的空间,是否被用户禁用
ShareObject又分本地ShareObject和远程ShareObject
本地ShareObject在整个swf播放中一直保留在内存中,只有当这个swf被关闭时自动写入到本地存储中或者直接调用SOInstance.flush()立即写入,其保存的本地文件是一个.sol文件,
xp系统下路径在
C:\Documents and Settings\<USER-NAME>\Application Data\Macromedia\Flash Player\#SharedObjects
linux的路径在
~/.macromedia/Flash_Player/#SharedObjects
使用很简单:
var storeobj:Object=new Object();
var so = SharedObject.getLocal("foo");
if(so.data.storeobj == undefined){
storeobj.chanelname="cctv1";
storeobj.programname="news";
so.data.storeobj=storeobj;
}else{
trace("输出数据");
var chanelname = so.data.storeobj.chanelname;
var programname = so.data.storeobj.programname;
trace("chanelname: "+chanelname);
trace("programname: "+programname);
so.data.storeobj.chanelname="修改cctv1";
so.data.storeobj.programname="修改news";
}
tracebtn.onRelease=function(){
trace("click");
trace(so.data.storeobj.chanelname);
trace(so.data.storeobj.programname);
}
tracebtn1.onRelease=function(){
trace("click1");
so.data.storeobj.chanelname="第二次修改cctv1";
so.data.storeobj.programname="第二次修改news";
}
Swf间的数据共享
只要指定sol路径就能实现共享
var so = SharedObject.getLocal("foo",”/”);
当你没指定路径时,play会生成一个swf所在主机域名/ swf路径/名称.swf这样的路径。此时sol会被存储在这个路径下。上面代码则会把文件存储在swf所在主机域名目录下,因此这个文件就能被其他swf访问。