`
joe.feng
  • 浏览: 131313 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

SharedObject

    博客分类:
  • Flex
阅读更多

共享对象可以简单理解为类似浏览器的cookies,可以将一定的信息保存在本地。共享对象有两种:本地和远程。本地表示用户将信息保存到本地硬盘里,远程表示每个用户都可以将信息保存到服务器端。默认情况下,共享对象的最大文件大小事100kb。要使用远程共享对象需要在服务器端安装Flash Media server(FMS)或RED5服务器程序。FMS是Adobe推出的音视频服务器,是收费产品;RED5是开源项目程序。

共享对象存储的位置:“系统盘:\Documents and Settings\ 用户名\Application Data\Macromedia\Flash Player\#SharedObjects\随机目录\localhost(如果是本机测试的话)\工程所在目录”。你会找到一个偶追为sol的文件。如果看不到Application Data这个目录,打开文件夹选项。在“查看”选项卡中把“隐藏受保护的操作系统文件”的勾去掉,再选中“选择显示所有文件和文件夹”选项。

 

共享对象步骤(只只对于本地)如下。

 

1.创建SharedObject

 

private var myLocalSharedObject:SharedObject = SharedObject.getLocal("mySo");
 

创建SharedObject一般只会用到getLocal方法的第一个参数来设置共享对象的名称。当需要多个应用使用同一个共享对象时,会用到第二个参数来设置存储路径。例如

 

private var myLocalSharedObject:SharedObject = SharedObject.getLocal("mySo","/");
 

如果其他应用要使用该对象,使用:

 

var so:SharedObject = SharedObject.getLocal("mySo","/");
 

 

2.存数据

mySo.data.myData = 数据;

myData给共享对象的data属性添加动态属性。

 

3.保存共享对象

一般创建共享对象后当关闭该程序时会自动保存,也可以使用flush()方法来保存。用flush的情况:分配文件大小;捕捉成功或出错信息。推荐使用flush()方法。

 

var flushStatus:string = null;
flushStatus = mySo.flush(5000);
 

 

4.读取共享对象

 

var mySo:SharedObject = SharedObject.getLocal("SharedObject");
 

一般先判断是否存在,如果不存在,则先写入,在flush,如:

 

if(mySo.data.someData == undefined){
	mySo.data.someData = sampleData;
	mySo.flush();
}
 

如果存在,则直接使用mySo.data.someData

 

5.删除共享对象

 

delete mySo.data.someData;	//删除属性
mySo.clear();	//删除整个对象
 

 

 

 

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics