`

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); 
  它们被保存在由程序定义的位置(在用户的主目录下); 
  它们永远不会从客户端传递到服务器。 
分享到:
评论

相关推荐

    Flex学习—关于Shareobject对象(本地共享对象)

    NULL 博文链接:https://ch-kexin.iteye.com/blog/1229696

    flex shareObject 本地共享

    仿造qq登陆功能写的 Flash提供的本地共享对象ShareObject是一种跨平台较好的方案,当然在客户端已经安装Flash Player的情况下。 ShareObject默认只能存储100Kb的数据,用户可

    ShareObject对象详解

    ShareObject,顾名思义共享对象,而通常意义上的共享,从B/S结构上来讲,无非是客户端(浏览器端)的共享和服务器端的共享了,不错,ShareObject刚好份演了这两种角色。而且ShareObject也是按此进行了两种分类,一类是LSO...

    Flex ShareObject简单应用

    Share object一般用来保存前来访问的用户的个人信息到用户的机器上。比如用户登陆过后保存他的名字,下次访问时自动显示,或者保存用户的个性化设置等等。

    ShareObject实例

    ShareObject 实例,通过此例就可以理解

    Flex新手教程_入门级学习笔记

    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多人多房间 聊天室

    flex + red5 开发聊天室,即时聊天采用 ShareObject.

    FLASH8中ShareObject的简单运用

    在不连接数据库的情况下,保存数据,并在下次打开SWF文件时依旧可以读取到以前写入的数据. 其他的可以照葫芦画瓢,都一个样的。

    ShareObject详解

    ShareObject详解,相当于ShareObject帮助文档

    flex 测试写的一些demo集合

    flash端报错统一处理,重力特效和商品图片加入购物车的动画效果,flex 渲染器,修改标题栏皮肤,ShareObject,State切换

    juv-rtmp-client shareobject连接

    juv-rtmp-client shareobject连接,java版本rtmp的shareobject连接。可以实现java rtmp shareobject数据连接

    AppletFirewall&ShareObject;

    智能卡应用防火墙与共享机制,智能卡应用防火墙与共享机制,智能卡应用防火墙与共享机制,智能卡应用防火墙与共享机制

    shared Object 用法

    shared Object对象相当强大,他提供了在多个客户端实时数据共享,并且可以存储在客户端或远程服务器。可以把本地共享对象比作cookies,把远程共享对象看作实时的数据传输设备。

    AS3 SharedObject 本地通讯 小例子

    AS3 SharedObject 本地通讯 小例子!以前很久的时候参考网上例子学习的!刚接触本地通讯的童鞋可以试试。

    引用外部类实现Flash Cookie的读写

    使用AS2外部类库对ShareObject函数功能进行整合,可以直接创建对象对Flash Cookie进行读写.

    as3比较详尽的工具类

    Cookies.as ---------------------- shareObject类似cookies HtmCookies.as ---------------------- 真实cookies JavaScript.as ---------------------- javascript交互 ...

    Flash中数据的存储和读取

    如何利用Flash代码让Flash动画中的数据储存在电脑上。一般是利用Flash中的ShareObject代码来实现的。(下载的文件中有fla源文件,源文件中说明非常详细。)

    原生PB9通过API实现多线程串口COM通讯

    1、Powerbuilder9.0_8836的版本 2、采用API,支持串口信号事件 3、事件监听、读字符,写字符都是采用...4、多线程用的是PB的shareobject方法,不会crash。 5、内含虚拟串口工具和串口调试工具以及API串口相关说明文档。

    原生 PB9 通过 API 实现多线程串口 COM 通讯

    1、Powerbuilder9.0_8836的版本 2、采用API,支持串口信号事件 3、事件监听、读字符,写字符都是采用的是多线程 4、多线程用的是PB的shareobject方法,不会crash。 5、内含虚拟串口工具和串口调试工具以及API串口...

Global site tag (gtag.js) - Google Analytics