`

Flex使用共享对象

阅读更多
  可以使用Flex来把数据保存在客户端,即通过SharedObject类把数据保存在Flash Player中。共享对象与HTTP cookie很相似,但是功能更强大,因为可以在其中保存更加复杂的数据结构。

   ————————————数据放服务单还是客户端——————————————
   数据是保存在客户端还是服务端,主要取决于数据的类型及目的。Flex应用程序可以像引用其他对象一样来引用本地共享对象中保存的数据。
 
   共享对象具有如下一些特征:
   A、 保存在终端用户的机器上,其位置由平台决定
   B、 扩展名是.sol
   C、 默认情况下它们的大小最多为100KB,用户可以调整大小限制,确定是否可以保存更大的对象
   D、 可以包含复杂的数据结构
   E、 不能包含方法或者函数
   F、 终端用户必须手动删除它们或者通过编程来删除它们,删除浏览器cookie时,并不会删除Flex的共享对象。
   G、 与cookies一样,共享对象不可以从不同的域读取。只有共享对象与SWF来自同一个域时,Flash Player才能够读取这个共享对象。


——————————————创建共享对象——————————————————
    sharedObject类的getLocal()静态方法可以获取已有的共享对象。如果共享对象不存在,这个方法就会创建一个新的对象。所有的共享对象都是在Flash Player清楚SWF文件时写入磁盘的。如果想立即写入共享代码,则需调用flush()静态方法

    var soMy:SharedObject  = new SharedObject.getLocal("myCookie");
   为了向共享对象添加数据,可以把变量作为共享对象的data属性的属性进行赋值。data是共享对象唯一内置的属性,例:
    soMy.data.user = "Cloudy";
   为了在共享对象里保存复杂的数据结构,待保存对象必须要在共享对象里进行初始化如:
   soMy.data.aUsers = new Array();
   soMy.data.aUsers = employees;
   在共享对象里创建一个数组,并且把一个已有的数组employee放进这个共享对象中。

   flush方法:
   mySharedObject.flush(diskSpace)//diskSpace用来指定待创建的.sol文件的大小。默认最大容量为100KB, 如果试图保存一个更大的共享对象,Flash Player会显示Local Storage对话框,以便用户允许或者拒绝某个域所要访问的存储空间。
    用户也可以为特定的域指定固定的存储空间: 右击播放器,选择settings,然后打开Local Storage对象框进行相应的设置。

  ————————————读取共享对象————————————————————

   Flash Player读取共享对象,存在两种情况:
   A、 如果相同名字的共享对象(在相同的域中)不存在,那么创建一个新的对象
   B、 如果共享对象存在,那么其中的内容将被读取到共享对象的data属性中
   一般在使用之前进行判断其是否存在
   if(soMy.data.user!=undefined){...}
   知道共享对象存在后,可以使用as来操作, 如下:
   var soMy = sharedObject.getLocal("myCookie");
   if(soMy.data.user!=undefined){
       txtUserName.text = soMy.data.user;
   }
   可以像引用其他对象一样来引用共享对象的所有属性,但是不可以在共享对象中保存方法。

   共享对象保存arrayCollection的例子:
   public function saveCart():void{
   this.soCart = SharedObject.getLocal("cartInfo");
   this.soCart.data.aCart = new Array();
   var len:int = aItems.length;
   for(var i:int=0;i<len;i++){
    this.soCart.data.aCart[i] = this.aItems.getItemAt(i);
   }
}
   SharedObject类只能保存As固有的数据结构, 比如对象数组,ArrayCollection以及值对象创建的对象不能保存在共享对象中。这些对象必须转换为对象数组。


——————————从已有的共享对象中读取数据————————————————
   public function loadCart():void{
      this.soCart = SharedObject.getLocal("cartInfo");
      if(this.soCart.data.aCart != undefined){
      var len:int = this.soCart.data.length;
      for(var i:int=0; i<len; i++){
         ... ...
     }
   }
   }
分享到:
评论

相关推荐

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

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

    FMS+FLEX-----使用远程共享对象实现多人实时在线聊天

    FMS+FLEX-----使用远程共享对象实现多人实时在线聊天 说明:这是我在网上看到的,收集并整理了一下。 因为我的积分不多了,所以虽然不是原创,但还是要一点资源分的。大家见谅。 压缩包中有说明文档和源码。说明...

    flex shareObject 本地共享

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

    Flex-超级学习资料集锦

    和,精品之作,两本书都: 按照Flex技术点,由浅入深、循序渐进地对Flex的开发工具、基本语法、基本的容器和控件的语法及使用、高级编程、自定义的各类组件、页面的风格和主题、Flex与HTML的通信、共享对象、远程...

    Flex从入门到精通

    按照Flex技术点,由浅入深、循序渐进地对Flex的开发工具、基本语法、基本的容器和控件的语法及使用、高级编程、自定义的各类组件、页面的风格和主题、Flex与HTML的通信、共享对象、远程数据的控制、Flex图表及...

    Flex从入门到精通[源文件]

    Flex从入门到精通按照Flex技术点,由浅入深、循序渐进地对Flex的开发工具、基本语法、基本的容器和控件的语法及使用、高级编程、自定义的各类组件、页面的风格和主题、Flex与HTML的通信、共享对象、远程数据的控制、...

    FLEX企业应用开发实战.part1

    本人从其他网站上下载的,333页全,看到CSDN上没有完整的版本,所以共享一下。由于文件比较大,压缩成了两个文件上传。 第1章 Flex企业应用开发入门  1.1 B/S企业应用开发者的噩梦  1.2 噩梦结束,新时代来临 ...

    FLEX企业应用开发实战.part2

    本人从其他网站上下载的,333页全,看到CSDN上没有完整的版本,所以共享一下。由于文件比较大,所以压缩成了两个文件上传。 第1章 Flex企业应用开发入门  1.1 B/S企业应用开发者的噩梦  1.2 噩梦结束,新时代...

    flex3的cookbook书籍完整版dpf(包含目录)

    在多个应用程序中访问同一个共享对象 17.8节. 记住用户输入文本框的内容 第十八章. 数据服务和服务端通信(574) 18.1节. 配置HTTPService 18.2节. 在Flex程序之间使用RESTful通信 18.3. 配置和连接RemoteObject 18.4...

    Flex +.net 聊天室

    基于.net的共享对象Flex聊天室需要配置客户端跟服务端的

    ShareObject对象详解

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

    源于FLEX中的安全沙箱问题

    各个沙箱的所有内容由利益相关方安全控制,包括文件请求,本地数据存储(共享对象)以及特定域及其内容所使用的任何其他资源。每个沙箱与操作系统,文件系统,网络,其他应用程序,甚至其他FLASH PLAYER沙箱实例保持...

    symfony-hybrid-flex-port:Symfony Flex的Hybrid应用程序端口

    Symfony Flex混合应用程序与Twig,React和Vue共享状态对象 注意:这是从 的移植。 文章中的详细信息: 这是一个示例应用程序,提供了一个可行的示例概念,该概念在Twig模板渲染引擎以及JavaScript视图层Vue和React...

    ActionScript开发人员指南中文版

    共享对象 加密的本地存储区 第章:在AIR中使用本地SQL数据库 关于本地SQL数据库 创建和修改数据库 操作SQL数据库数据 使用同步和异步数据库操作 对SQL数据库使用加密 使用SQL数据库的策略 第章:使用字节数组 读取并...

    RIA框架Cairngorm

    Model(数据模型M):使用singleton(单例)模式共享变量; VO( Value Object):储存特定值对象变量。 VIew(视图V):将Model的数据绑定互组件并广播侦听Cairngorm Event; Controller(控制器):侦听Cairngorm事件并将...

    ActionScript开发技术大全

    28.3使用FlexBuilder3创建和部署AIR应用 588 28.4AIR应用配置文件 591 28.4.1应用程序配置 591 28.4.2初始化窗口设置 595 28.4.3图标设置 595 28.4.4关联文??柚?596 28.5小结 597 第29章AIR部分特性介绍 598 29.1AIR...

    Flex与.NET互操作(十二):FluorineFx.Net的及时通信应用(Remote Shared Objects)(三)

    远程共享对象(Remote Shared Objects) 可以用来跟踪、存储、共享以及做多客户端的数据同步操作。只要共享对象上的数据发生了改变,将会把最新数据同步到所有连接到该共享对象的应用程序客户端。

    red5服务器(part1)

    需要2个文件都下载了才能解压 Red5简介  Red5的主要功能和Macromedia公司...它具有流化FLV、MP3文件,实时录制客户端流为FLV文件,共享对象,实时视频播放、Remoting等功能。用Red5替换FMS后,客户端不用更改可正常运行

    Flex与.NET互操作(十三):FluorineFx.Net实现视频录制与视频回放

    本文主要介绍使用FluorineFx.Net来实现视频录制与视频回放,FluorineFx如同FMS一样,除了有AMF通信,RTMP协议,RPC 和远程共享对象外,它同样具备视频流服务的功能。

    最新AngularJS开发宝典视频教程 后盾网AngularJS培训视频教程 后盾网.txt

    ├最新AngularJS开发宝典—第012讲 函数使用方法大小写转换与对象深拷贝.mp4 ├最新AngularJS开发宝典—第013讲 函数使用对象扩充与数据遍历.mp4 ├最新AngularJS开发宝典—第014讲 json数据转换与本地存储及$scope...

Global site tag (gtag.js) - Google Analytics