什么是本地ShareObject?
通过Flash 6 player,开发人员已就可以在客户端存储数据了,就像cookies一样。ShareObject有两种格式:本地和远程。这篇文章只讨论
本地ShareObject.远程ShareObject一般和Flash communication server一起使用。一个本地ShareObject只需要Flash 6 player,仅此而已。很多情况下,ShareObject提供了除cookies外的另一种选择,这是许多开发者没有考虑过的。
存储简单数据
在ShareObject中存储简单数据是相当简单的工作,我们先用ShareObject存储一个用户自定义的对象,然后将讨论用ShareObject存储内建类的实例的问题。一个用户自定义对象可以这样创建:
myObj = new Object(); //or myObj = {};
myLSO = SharedObject.getLocal("foo");myLSO = SharedObject.getLocal("foo");
myObj = {};
myObj.fname = "Jessica";
myObj.lname = "Smith";
myLSO.data.myObj = myObj
*****译者注*****现在myObj已经存储在SharedObject中了,今后你可以通过对SharedObject数据属性的存取来实现对myObj的存取,下面是一个例子,这个例子检测是否数据已经被存储到SharedObject中了,如果没有,它将数据存储进去,如果已经存在,则在输出窗口输出。当你将这些代码放到一个空的电影的第一祯后,你可以运行它一次,然后在运行一次,第二次运行你可以看到你存储的数据被输出。
*****译者注*****
一定要先保存动画,否则你的动画只是在windows临时文件夹中运行,不能存储数据。
****************
myLSO = SharedObject.getLocal("foo");
if(myLSO.data.myObj == undefined){
trace("Storing Data, run me again");
myObj = {};
myObj.fname = "Jessica";
myObj.lname = "Smith";
myLSO.data.myObj = myObj;
}else{
trace("Retrieving Data");
var firstname = myLSO.data.myObj.fname;
var lastname = myLSO.data.myObj.lname;
trace("First Name: "+firstname);
trace("Last Name: "+lastname);
}
*****译者注*****
运行一次以上后,你可以将程序改为
myLSO = SharedObject.getLocal("foo");
trace("Retrieving Data");
var firstname = myLSO.data.myObj.fname;
var lastname = myLSO.data.myObj.lname;
trace("First Name: "+firstname);
trace("Last Name: "+lastname);
你会发现无论你重复运行多少次,甚至关闭Flash后重新进入,仍然能够得到firstname和lastname的值。
另外你应该可以理解getLocal()方法的参数的作用了,它用来表示你所存储的数据的载体名称,是必不可少的。
例如本例中的数据都存储在名为foo的SharedObject中,只有getLocal("foo"),你才能得到你想要的结果。
****************
你还可以存储更多内建类型:数组,布尔值,日期,数字,对象,XML,undefined,null
下面是一个将日期实例存储在SharedObject中的例子:
myLSO = SharedObject.getLocal("DateStorage");
myDate = new Date();
myLSO.data.myDate = myDate;
*****译者注*****
存储简单数据的方法到这基本上就介绍完了,是不是很简单?
为了方便大家理解,我做了一个简单的例子:
共有 0 位网友发表了评论,得分 0 分,平均 0 分 查看完整评论