Flex Shared Object是一个类似于Cookies的东西,同来存储一些数据到用户本机。但它与Cookies又有些不同。
第一,Cookies过一段时间会过期,而它不会,除非你执行清除命令。
第二,存储的数据大小不能超过100KB,超过了,FlashPlayer会提示用户是否允许该存储操作。
第三,存储数据的位置和程序本身有关。
第四,它不会像Cookies那样在客户端和服务器端之间传递。
SharedObject类有以下几个方法:
1.clear(), 清除共享数据和文件。
2.flush(),立即写入共享文件到客户端。
3.getLocal(),获得共享数据文件,如果为空系统会自动新建一个共享文件到客户端。
4.getSize(),获得共享数据文件的大小,单位是bytes。
有两个属性:
1.data,代表着共享数据的数据集合。
2.onStatus,当共享数据发出警告、错误或其他信息时的事件。
创建共享文件
public var mySO:SharedObject;
mySO = SharedObject.getLocal("preferences");
mySO = SharedObject.getLocal("preferences");
创建一个自定义路径的共享文件。
mySO = SharedObject.getLocal("preferences","/");
如果你希望让多个Flex程序共享此文件,可以用到此功能。
写共享数据到本地
public var currentUserName:String = "Reiner";
public var itemsArray:Array = new Array(101,346,483);
public var currentUserIsAdmin:Boolean = true;
mySO.data.userName = currentUserName;
mySO.data.itemNumbers = itemsArray;
mySO.data.adminPrivileges = currentUserIsAdmin;
public var itemsArray:Array = new Array(101,346,483);
public var currentUserIsAdmin:Boolean = true;
mySO.data.userName = currentUserName;
mySO.data.itemNumbers = itemsArray;
mySO.data.adminPrivileges = currentUserIsAdmin;
mySO.flush();
注意:共享数据只支持简单数据类型,例如:int,uint,string,array等。
读出
trace(mySO.data.userName,mySO.data.itemNumbers,mySO.data.adminPrivileges)
清除
mySO.clear();
没有什么好讲的,只是看到国内一个涂鸦板程序,用到了此功能保存临时数据,就写了下