flex Shared Object 学习笔记

来源:互联网 发布:mysql 关闭数据库 编辑:程序博客网 时间:2024/06/06 05:40

最近做的项目用到了两个Application,涉及到传值问题,查阅了大量资料,找到了解决方案,以备忘。

Flex Shared Object是一个类似于Cookies的东西,同来存储一些数据到用户本机。但它与Cookies又有些不同。
第一,Cookies过一段时间会过期,而它不会,除非你执行清除命令。
第二,存储的数据大小不能超过100KB,超过了,FlashPlayer会提示用户是否允许该存储操作。
第三,存储数据的位置和程序本身有关。
第四,它不会像Cookies那样在客户端和服务器端之间传递。

SharedObject类有以下几个方法:
1.clear(), 清除共享数据和文件。
2.flush(),立即写入共享文件到客户端。
3.getLocal(),获得共享数据文件,如果为空系统会自动新建一个共享文件到客户端。
4.getSize(),获得共享数据文件的大小,单位是bytes。

有两个属性:
1.data,代表着共享数据的数据集合。
2.onStatus,当共享数据发出警告、错误或其他信息时的事件。

主要看下面的这个方法:
SharedObject.getLocal(“PEIMESSION”[, localPath]);
其中第一个参数是该共享对象的名字,localPath即共享对象所在路径。一般采用“/"来表示,代表全域的share Object,可供所有的swf来访问。

每个对象都会有一个只读属性data,用来存储被存储到“数据特性”中的对象的属性,这些属性可以共享/存储,每一个属性可以是各种基础数据类型(数组,数字布尔值等)对象。现在cookie已经存储在SharedObject中了,以后你可以通过对SharedObject数据属性的存取来实现对cookie的存取。例如:

so.data.name = "张三";
so.data.password = "123456";
so.data.rememberPassword = true;

创建共享文件
public var mySO:SharedObject;

mySO = SharedObject.getLocal("preferences","/");

public var currentUserName:String = "admin";
public var itemsArray:Array = new Array(1,2,3);
public var currentUserIsAdmin:Boolean = true;
mySO.data.userName = currentUserName;
mySO.data.itemNumbers = itemsArray;
mySO.data.adminPrivileges = currentUserIsAdmin;
mySO.flush();

取值:
var curUser:Object = so.data.user


0 0
原创粉丝点击