您的位置:首页 > 移动开发 > Objective-C

使用Share object 保存用户信息(类似于session)

2009-12-12 23:41 671 查看
Share object一般用来保存前来访问的用户的个人信息到用户的机器上。比如用户登陆过后保存他的名字,下次访问时自动显示,或者保存用户的个性 化设置等等。 每个网站对应100K的默认大小,如果尝试写入超过100K的数据到客户端硬盘,flash player会有提示。这篇教程没有什么特别 之处,网上也有很多关于Share objecy的介绍,Share object很简单,我这里主要提供一个demo给大家。

Demo操作过程
1. 第一次运行后你可以看倒提示说您第一次来。
2. 填写用户名和爱好,点击记住我,你会看到你填写信息的显示。
3. 重新运行demo, 你的信息会被读出。
4. 点击忘记我,清空share object.
5. 填写新信息,点记住我,老信息会被替换。

private var shData:SharedObject;
private function init():void{
shData = SharedObject.getLocal("demoData") //获取名称demoData的
share object this.showLocalData() }
private function saveToLocal():void{
shData.data.userName = userName.text;
//保存用户名 shData.data.like = like.text;
//保存爱好 shData.flush();
//写入local
this.showLocalData(); }
private function showLocalData():void{
if(shData.data.userName == undefined || shData.data.userName == "" || shData.data.like ==""){ this.info.text = "您第一次来,请填写你的信息并点击记住我" }else{ this.info.text = "您好,爱好" shData.data.like "的" shData.data.userName } }


关于共享对象

共享对象功能就像浏览器的 Cookies.你使用共享对象类来储存数据到用户的本地硬盘并在同一会话期间或下一个会话中调用这些数据.程序仅可以存取他们自己的共享对象数据,并仅当在同一域中运行.这些数据不能发送到服务器并且不能被运行在其他域的其他Adobe Flex程序存取,但可以被来自同一域的程序存取.

共享对象与Cookies的比较

Cookies 和共享对象非常相似.因为大多数的Web程序员对Cookies工作原理相当熟悉,所以比较Cookies和本地共享对象是有用的.

Cookies 遵循RFC 2109标准,通常拥有下列属性:

他们能终止,并常常在会话结束时默认的被终止.
他们能被在指定网站基本的客户端禁止.
他们都有一定的限制.总共300个,每个站点最大20个.
每个通常被限制在4KB大小.
他们有时被理解成一个安全威胁,并且,作为一个结果,有时在客户端也被禁用.
他们存储在客户端浏览器指定的位置.
他们通过HTTP在客户端和服务端传送.
相比之下,共享对象拥有下列属性:

默认时不被终止.
默认的每个对象限制在100KB大小.
他们能储存简单的数据类型(比如 字符串,数组和日期).
他们被存储在由程序指定的位置(在用户的根目录中).
从不在客户端和服务端传送.

关于共享对象类

使用共享对象类,你能创建和删除共享对象,也能查看你现在作用的共享对象的现大小.共享对象类包括下列方法:

方法描述
clear()从共享对象清除所有的数据,从磁盘删除共享对象文件
flush()立即写在客户端的共享对象文件到一个文件中.
getLocal()返回本地共享对象的客户端的指定域的参考.如果不存在,该方法在客户端创建一个新的共享对象.
getSize()获取共享对象文件的字节数.默认大小限制为100KB,当然客户端允许的话可以更大.
除了这些方法这外,共享对象还有下列属性:

属性描述
data只读属性,共享对象存储的集中表示
onStatus共享对象的由任何警告、错误或信息提示引起的被调用的事件句柄
具体使用的例子就参考 版主的帖子
http://bbs.airia.cn/FLEX/thread-2886-1-1.aspx
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: