flex招式八:flex共享对象ShareObject
- 博客分类:
- 技术杂绘
flex的共享对象ShareObject是flex在不同的swf传递数据的一种方式~`,在本地,创建的文件可以在C:\Documents and Settings\{你的用户名}\Application Data\Macromedia\Flash Player\#SharedObjects找到,它是以sol为后辍的文件保存,打开可以看到里面的内容``所以在保存前重要数据得加密``
对于本地共享对象存取方式如下:
// ******* 保存一个对象 ******
// getLocal方法的第二个参数是在#SharedObjects目录开始寻址的,而且必须是存在的目录~`
var so:SharedObject = SharedObject.getLocal("mydata","/");
var o:Object = new Object();
o.name = "apple";
so.data.obj = o;
so.flush();
//跳转 navigateToURL(new URLRequest("flexj.html"));
// ****** 获取共享对象 ******
var so: SharedObject = SharedObject.getLocal("mydata","/");
var name:String = so.data.obj.name;
Alert.show(name);
开发人员已就可以在客户端存储数据了,就像cookies一样。ShareObject有两种格式:本地和远程。这篇文章只讨论 本地ShareObject.远程ShareObject一般和flash communication server一起使用。 很多情况下,ShareObject提供了除cookies外的另一种选择,这是许多开发者没有考虑过的。
1、 存储简单数据 在ShareObject中存储简单数据是相当简单的工作,我们先用ShareObject存储一个用户自定义的对象,然后将讨论用ShareObject存储内建 类的实例的问题。一个用户自定义对象可以这样创建:
myObj = new Object();
//or
myObj = {};
在ShareObject中存储myObj是很简单的,首先你需要创建一个本地ShareObject的引用:
myLSO = SharedObject.getLocal("foo");
getLocal方法的第一个参数是ShareObject的名字,getLocal()方法也有第二个可选参数:一个字符串类型的路径。大多数情况下你用不到这个参数,除非你在多个swf文件中共用同一个ShareObject。
现在为了在ShareObject中储存数据,你需要给ShareObject指定"数据特性"(data property)。现在创建一个ShareObject引用,以及你想存储的对象,最后存储这个对象到"数据特性"中。 例子:
myLSO = SharedObject.getLocal("foo");
myObj = {};
myObj.fname = "Jessica";
myObj.lname = "Smith";
myLSO.data.myObj = myObj
foo就是这个共享对象的标识,shareobject可以存贮很多的对象,用这个foo可以指定我们要的数据。 关于远程shareobject可以参见http://hacker47.javaeye.com/blog/208389 hacker已经将这个问题讲得很清楚了。
1、什么是共享对象:
SharedObject(共享对象)可以看作是小型的数据库,它用来存储任何Flash支持的数据类型,比如数字、字符串、数组和对象等等。
SharedObject按存放位置可分为本地型(存在客户端)和远程型(存在服务器端)。本地型共享对象的扩展名为.sol。
对于Windows98(me)用户来说,默认的存储路径是:Application Data\Macromedia\Flash Player\服务器域名路径\Flash电影文件名.swf;
对于Windows2000(xp)用户来说,默认的存储路径是:Documents and Settings\[User]\Application Data\Macromedia\Flash Player\服务器域名路径\Flash电影文件名.swf。
本地型共享对象只能将数据保存在默认路径下,而且扩展名只能是.sol。
在网上有看到说该方法受文件大小的限制,最大为1K,但经过反复实验发现,该方法并不受文件大小限制。
2、如何创建一个本地型共享对象:
要创建一个SharedObject对象,可以使用SharedObject.getLocal()方法,语法如下:
SharedObject.getLocal("objectName" [, pathname]): SharedObject
下列例子创建了一个叫做sObj的本地型共享对象:
private var sObj:SharedObject = SharedObject.getLocal("hello");
这将在客户端创建一个叫做hello.sol的文件,sObj就是本地型共享对象。
3、关于SharedObject类
使用SharedObject类,你可以创建和删除共享对象。SharedObject类主要包含下列属性和方法:
属性 描述
data 描述了共享对象保存的属性集合的只读属性
onStatus 共享对象的事件处理器
方法 描述
clear() 删除SharedObject中的所有数据,并且从磁盘中删除SharedObject的所有属性。
flush() 立即向客户端写入SharedObject
getLocal() 返回客户端域定义的本地共享对象的引用。如果不存在共享对象,这个方法将创建一个新的共享对象。
getSize() 获得共享对象文件的大小。默认上线是100k,如果客户端允许,还可以更大。
4、共享对象与Cookie:
共享对象功能就像浏览器的cookie。你可以使用SharedObject类来在用户的本地磁盘上保存数据,并且在当前的会话或之后的会话中调用那些数据。
程序祝你能访问它们自己的SharedObject数据,并且只能在他们欲行在相同的域的时候可以。
这些数据不会被发送到服务器,并且不能被运行在其他域下的Flex曾需访问,但是可以来自同一域中的Flex程序访问。
比较共享对象与Cookie
Cookie和共享对象都非常简单。因为大多数web程序员都很熟悉cookie的工作原理,这有助于对比cookie和本地共享对象。
Cookie遵循RFC 2109标准生成,并且拥有下列属性:
它们可以过期,通常默认在会话结束时过期;
它们可以被禁用;
最多可以有300个Cookie,并且每个站点最多可以有20个cookie;
每个Cookie通常被限制在4k大小;
某些情况下,它们会被认为是安全隐患,因而在客户端被禁用;
它们存储在由客户端浏览器指定的位置;
它们通过HTTP协议从客户端传递到服务器。
作为比照,共享对象有如下属性:
默认情况下不会过期;
默认情况下,它们被限定在每个100K大小;
它们可以保存简单数据类型(例如String,Array和Date);
它们被保存在由程序定义的位置(在用户的主目录下);
它们永远不会从客户端传递到服务器。
发表评论
-
判断是否是正确日期字符串的函数
2012-07-06 09:52 1126个人写的一个判断是否是正确日期字符串的函数, 请大家点评 ... -
PyQt4--QLineEdit内引入正则表达式
2012-07-06 09:46 1505from PyQt4.QtCore import * ... -
杂记之通过style样式xml定义规范组件属性
2012-07-03 13:44 974效果图 main.xml 组件进行关联 --& ... -
Flex 不支持GIF的解决方法
2012-07-02 13:12 886GIF图片,加载到Image后,不能动起来,需要把 gif ... -
使用Flex和Actionscript开发Flash游戏――碰撞检测
2012-07-02 13:12 575这一部分,我们加 ... -
完美解决Panel设置了borderSkin后内容体与标题栏重叠的问题
2012-07-02 13:12 778如果您做过Flex皮肤 ... -
flex 实现的多点切割+mask蒙版+自动识别非透明区域+自适应图片大小
2012-07-02 13:12 1451先上代码: 1){ ... -
flex 界面改进
2012-07-02 13:12 568f 代码如下: ... -
flex 实现的多点切割+mask蒙版+自动识别非透明区域+自适应图片大小
2012-07-01 10:44 1202先上代码: Arr ... -
Flex DataGrid单元格背景色 单元格字体颜色控制
2012-07-01 10:43 1086前阵子在做Flex网页时,关于单元格字体颜色这方面纠结了好 ... -
flex 读取配置文件 与PHP交互 圆饼图
2012-07-01 10:43 624FLEX文件 teacherevalute.mxml ... -
flex 界面改进
2012-07-01 10:43 646f 代码如下: Arr ... -
Flex是咋回事之三 谁用谁知道
2012-06-30 17:07 609Flex是咋回事之三 谁用谁知道 2010年09月21日 ... -
java与flex通信
2012-06-30 17:07 593java与flex通信 2010年10月22日 一、准备 ... -
如何使用Maven 3.0, Flex Mojos 4.0和Flex 4.5构建一个简单的SWF程序
2012-06-30 17:07 1272如何使用Maven 3.0, Flex Mojos 4.0和F ... -
学习flex 初步实现与java进行数据交互
2012-06-30 17:07 633学习flex 初步实现与java进行数据交互 2010年06 ... -
Flex数据绑定陷阱(二)
2012-06-30 17:07 647Flex数据绑定陷阱(二) 2010年08月10日 尝试 ...
相关推荐
NULL 博文链接:https://ch-kexin.iteye.com/blog/1229696
仿造qq登陆功能写的 Flash提供的本地共享对象ShareObject是一种跨平台较好的方案,当然在客户端已经安装Flash Player的情况下。 ShareObject默认只能存储100Kb的数据,用户可
ShareObject,顾名思义共享对象,而通常意义上的共享,从B/S结构上来讲,无非是客户端(浏览器端)的共享和服务器端的共享了,不错,ShareObject刚好份演了这两种角色。而且ShareObject也是按此进行了两种分类,一类是LSO...
Share object一般用来保存前来访问的用户的个人信息到用户的机器上。比如用户登陆过后保存他的名字,下次访问时自动显示,或者保存用户的个性化设置等等。
ShareObject 实例,通过此例就可以理解
1.1类和对象 Class and Object 1 1.2包与命名空间 Package and NameSpace 1 1.3构造方法Constructor 2 1.4变量和值 Variable 2 1.5赋值 2 1.6 AS数据类型 3 1.7数据类型转换 3 1.8实例方法,实例变量和静态方法,静态...
flex + red5 开发聊天室,即时聊天采用 ShareObject.
在不连接数据库的情况下,保存数据,并在下次打开SWF文件时依旧可以读取到以前写入的数据. 其他的可以照葫芦画瓢,都一个样的。
ShareObject详解,相当于ShareObject帮助文档
flash端报错统一处理,重力特效和商品图片加入购物车的动画效果,flex 渲染器,修改标题栏皮肤,ShareObject,State切换
juv-rtmp-client shareobject连接,java版本rtmp的shareobject连接。可以实现java rtmp shareobject数据连接
智能卡应用防火墙与共享机制,智能卡应用防火墙与共享机制,智能卡应用防火墙与共享机制,智能卡应用防火墙与共享机制
shared Object对象相当强大,他提供了在多个客户端实时数据共享,并且可以存储在客户端或远程服务器。可以把本地共享对象比作cookies,把远程共享对象看作实时的数据传输设备。
AS3 SharedObject 本地通讯 小例子!以前很久的时候参考网上例子学习的!刚接触本地通讯的童鞋可以试试。
使用AS2外部类库对ShareObject函数功能进行整合,可以直接创建对象对Flash Cookie进行读写.
Cookies.as ---------------------- shareObject类似cookies HtmCookies.as ---------------------- 真实cookies JavaScript.as ---------------------- javascript交互 ...
如何利用Flash代码让Flash动画中的数据储存在电脑上。一般是利用Flash中的ShareObject代码来实现的。(下载的文件中有fla源文件,源文件中说明非常详细。)
1、Powerbuilder9.0_8836的版本 2、采用API,支持串口信号事件 3、事件监听、读字符,写字符都是采用...4、多线程用的是PB的shareobject方法,不会crash。 5、内含虚拟串口工具和串口调试工具以及API串口相关说明文档。
1、Powerbuilder9.0_8836的版本 2、采用API,支持串口信号事件 3、事件监听、读字符,写字符都是采用的是多线程 4、多线程用的是PB的shareobject方法,不会crash。 5、内含虚拟串口工具和串口调试工具以及API串口...