万卷书   首页 > 电脑书籍 > Flash > Flash MX 新的闪烁世界(第十天)
 
应用:

//prepare functions

soLoad=function(src){

return SharedObject.getLocal(src);

}

soSave=function(src,sdata){

var tmpData= SharedObject.getLocal(src);

for (var i in sdata) tmpData.data[i]=sdata[i];

trace(tmpData.getSize());

return tmpData.flush();

}

//from Demon.S function lib SharedObject.localDeleteAll

SharedObject.prototype.localDeleteAll=function(){

for(var i in this.data) delete this.data[i];

return this.flush();

}

//main 2

//init

var mySo="testMod";

var aryData={aritcle:"Flashmx new lighting world day10",author:"Demon.S",date:"4/8/2002",from:"DnVsystem",url:"http://www.dnvs.net"}

//remote one:SharedObject.deleteAll(src);

//local one:clearn local data

var tempSO=SharedObject.getLocal(mySo);

trace("clearing....garbage:" + (tempSO.LocalDeleteAll() ? "cleaned" : "fail in clearning local data"));

//load & save

if (soSave(mySo,aryData) && aryData){

var mainData=soLoad(mySo);

if (mainData) for(var i in mainData.data) trace(i+":"+mainData.data[i]);

else trace("Fail in save ");

}

else trace("No Data");

这个例子基本上覆盖了SharedObject的本地应用的全部常用用法,程序开始的时候我假设不需要上次的记录,所以我要清除那些东西,所以使用了localDeleteAll()(from Demon.S function lib)方法来清空我要写的文件;接着判断一些必要的纠错,并把已经准备好的数据Object对象aryData用自定义的soSave写入目标mySo。

(图2)

  这样我们就实现了一个简单过程,其中getSize方法可以获取sharedObject的文件大小,在Flash MX的默认是100k,但这个可以由用户自定义,甚至无限大。

  通过这个例子,我们可以把这样的过程利用到网站访问历史、用户私人信息存储、游戏暂存/数据缓存等很多应用。

上一页 下一页