当前位置: 代码迷 >> Web前端 >> Local Share Object中储存自定义数据类型
  详细解决方案

Local Share Object中储存自定义数据类型

热度:860   发布时间:2012-11-23 00:03:43.0
Local Share Object中存储自定义数据类型
登陆时一些用户信息需要保存在client端,准备放在shareObject里,就找了dev guide,稍作了些整理。

  1 获取LSO对象 
var lso:ShareObject = ShareObject.getLocal("userInfo");
*每个lso对象都会有一个后缀名为sol的文件与其对应,上面的代码将会产生一个userInfo.sol,可以同时建立多个lso,也就会生成多个文件。

   2 操作其中的属性

LSO数据是放在data属性中,采用KEY/VALUE键值对方式存储(lso.data.key = value;)
如lso.data.name = "abc" ; var url:String = lso.data.String .
如果是自定义对象, 就lso.data.user = userVO;
var user:UserVO = lso.data.user;

*自定义对象需要注册别名才能这样使用,否则会报类型转换异常
import flash.net.registeClassAlias;
flash.net.registeClassAlias("userVO",package.UserVO);

  3 将操作保存至lso文件
lso.flush();
*如果不flush(),文件里的内容是不会更新,在其它地方就读不到上次操作的属性,当然了application 在退出的时候会更新文件.

  4 删除文件
lso.clear();

  每个Domain下的LSO存储空间默认大小是100KB,超出的话,会弹出窗口让用户选择是否允许继续存储.
  可以指定LSO文件存储位置,ShareObject.getLocal("userInfo","filePath"),这个filePath是有要求的,DevGuide上说 This file must be a
subdirectory of that domain’s SharedObject directory.
ShareObject.getLocal("userInfo","/"),这是把文件生成到Domain的根下,两个Application就可以访问同一个LSO中的数据。
  同一份ShareObject可用于多个Application间共享数据,需要用到LocalConnection
  不同操作系统,LSO文件默认存放位置是不一样的

Operating             System Location
Windows 95/98/ME/2000/XP
c:/Documents and Settings/username/user_domain/Application
Data/Macromedia/Flash
Player/#SharedObjects/web_domain/path_to_application/application_name/object_ame.sol

Windows Vista c:/Users/username/user_domain/AppData/Roaming/Macromedia/Flash
Player/#SharedObjects/web_domain/path_to_application/application_name/object_ame.sol

Macintosh OS X
/Users/username/Library/Preferences/Macromedia/Flash Player/#SharedObjects

Linux/Unix
/home/username/.macromedia/Flash_Player/#SharedObjects

我的OS是WIN7,Default Location:
C:\Users\dennis\AppData\Roaming\Macromedia\Flash Player\#SharedObjects\JJM8JDKD\localhost\workspace\test\bin-debug\TestLSO.swf\userInfo.sol
  相关解决方案