网站上的网游存储原理,谁来告诉我!

1,保存的数据存储在

c:\ documents and settings \ administrator(或者你的用户名)\ application data \ macromedia \ flash player \ # shared objects \ 2s 6 jn9l 7(这个文件夹的名字是系统随机生成的,你的和我的肯定不一样)!

在这个目录中,你会看到很多以网站命名的目录,然后根据你访问过的小游戏网站就可以找到了!例如,我刚才在这个小游戏站玩游戏,会有一个名为baiduflash.com的文件夹,而。我玩过的游戏的sol文件里面就是数据!(本文为原创,转载请注明:来自zhidao.baidu.com,我爱小怪兽)

2.flash数据可以通过ShareObject存储(本文译自/金妮)。

请先了解什么是本地ShareObject。

使用flash 6 player,开发人员已经可以在客户端存储数据,就像cookies一样。ShareObject有两种格式:本地和远程。本文只讨论本地ShareObject。远程ShareObject通常与flash communication server一起使用。一个本地ShareObject只需要flash 6播放器,仅此而已。在许多情况下,ShareObject提供了cookies的替代方案,这是许多开发人员没有考虑到的。

存储简单数据

在ShareObject中存储简单数据是一项相当简单的工作。我们将首先用ShareObject存储一个用户定义的对象,然后我们将讨论用ShareObject存储内置类的实例的问题。用户定义的对象可以按如下方式创建:

myObj = new Object();//或者myObj = { };

在ShareObject中存储myObj非常简单。首先,您需要创建对本地ShareObject的引用:

my lso = shared object . get local(" foo ");

getLocal方法的第一个参数是ShareObject的名称,getLocal()方法还有第二个可选参数:字符串类型的路径。大多数情况下,除非在多个swf文件中使用同一个ShareObject,否则不需要此参数。现在,为了在ShareObject中存储数据,您需要为ShareObject指定“数据属性”。现在创建一个ShareObject引用和想要存储的对象,最后将这个对象存储在“数据特征”中。

示例:

my lso = shared object . get local(" foo ");myObj = { };myObj.fname = " JessicamyObj.lname = " SmithmyLSO.data.myObj = myObj

* * * * *译者注* * * *

myLocalSharedObject.data

描述:

只读属性,用于存储存储在数据属性中的对象的属性。这些属性可以共享/存储,每个属性可以是各种基本数据类型(数组、数字布尔值等)的对象。).

现在myObj已经存储在SharedObject中。以后可以通过访问SharedObject的data属性来访问myObj。这里有一个例子。此示例检测数据是否已存储在SharedObject中。如果没有,它将数据存储在其中。如果它已经存在,则在输出窗口中输出。当你把这些代码放在一个空电影的第一帧,你可以运行一次,然后再运行一次,再运行第二次,你就可以看到你存储的数据输出了。

* * * * *译者注* * * *

请务必先保存动画,否则您的动画将只能在windows临时文件夹中运行,并且无法存储数据。

****************

my lso = shared object . get local(" foo ");

if(my lso . data . myobj = = undefined){

trace("存储数据,再次运行我");

myObj = { };

myObj.fname = " Jessica

myObj.lname = " Smith

my lso . data . myObj = myObj;

}否则{

trace("检索数据");

var first name = my lso . data . myobj . fname;

var last name = my lso . data . myobj . lname;

trace("名字:"+名字);

trace("姓氏:"+姓氏);

}

* * * * *译者注* * * *

运行多次后,您可以将程序更改为

my lso = shared object . get local(" foo ");

trace("检索数据");

var first name = my lso . data . myobj . fname;

var last name = my lso . data . myobj . lname;

trace("名字:"+名字);

trace("姓氏:"+姓氏);

你会发现无论重复运行多少次,甚至关闭flash重新输入,还是能得到firstname和lastname的值。

此外,您应该能够理解getLocal()方法的参数的功能,这对于表示您存储的数据的运营商名称是必不可少的。

比如这个例子中的数据存储在一个名为foo的SharedObject中,只有get local(“foo”)才能得到想要的结果。

****************

还可以存储更多的内置类型:数组、布尔值、日期、数字、对象、XML、未定义、null。

以下是在SharedObject中存储日期实例的示例:

my lso = shared object . get local(" date storage ");

myDate = new Date();

my lso . data . myDate = myDate;

注意:

SharedObject最有趣的应用是游戏存档!

只要对游戏相关的数据,如时间、分数、等级、屏幕位置等相关数据进行存储,并在必要时进行提取,就基本实现了存档和检索文件的功能。

另外,在使用SharedObject之前,不要忘记将你的Flash播放器的文件存储设置为无限制,否则如果超过播放器的文件存储限制(默认为10k),ShareObject将无法工作!