as2 sharedObject

ShareObject能在as1.0flash 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访问。

posted on 2010-07-18 20:02  随水流  阅读(727)  评论(0编辑  收藏  举报

导航