可以使用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,也称为本地共享对象,它允许应用程序在用户计算机上存储数据,实现数据的持久化。 ShareObject是Flex提供的一种轻量级的数据存储解决方案,它类似于Web浏览器...
"Flex数据共享与压缩"的主题聚焦于如何在Flex应用中有效地管理和存储本地数据,特别是针对XMLList等大数据结构。XMLList是一种常见的数据结构,它允许我们方便地操作XML数据。然而,由于Flex本地共享空间的存储限制...
FMS+FLEX-----使用远程共享对象实现多人实时在线聊天 说明:这是我在网上看到的,收集并整理了一下。 因为我的积分不多了,所以虽然不是原创,但还是要一点资源分的。大家见谅。 压缩包中有说明文档和源码。说明...
仿造qq登陆功能写的 Flash提供的本地共享对象ShareObject是一种跨平台较好的方案,当然在客户端已经安装Flash Player的情况下。 ShareObject默认只能存储100Kb的数据,用户可
- 对于SWF体积大的问题,可以使用Module动态加载和RSL(Runtime Shared Libraries)共享库来减少下载量。 - 对于处理速度慢,可以优化异步通信,提升用户体验,例如通过进度条显示或异步加载。 8. Flash与Flex的...
和,精品之作,两本书都: 按照Flex技术点,由浅入深、循序渐进地对Flex的开发工具、基本语法、基本的容器和控件的语法及使用、高级编程、自定义的各类组件、页面的风格和主题、Flex与HTML的通信、共享对象、远程...
- **数据模型**:为了与Flex客户端共享数据,C#服务器端需要定义与Flex端AMF对象相匹配的数据模型。 6. **调试与优化** - **Flex Builder的调试工具**:Flex Builder提供强大的调试工具,可以追踪客户端到服务器...
- **CSS**:虽然Flex主要使用MXML进行布局和样式设置,但也可以结合使用CSS,尤其是当处理更复杂的样式规则或者需要在HTML和Flex之间共享样式时。 - **Java**:Flex常与Java后端服务配合使用,通过AMF(Action ...
- **工欲其善,先利其器(Flex Builder)**:介绍了如何使用Adobe Flex Builder进行Flex项目的开发,包括下载、安装、启动开发环境、创建“Hello World”项目及MXML编程模型。 - **建立扎实的ActionScript 3.0语法...
3. **Flex内置服务**:Flex提供了一些内置的服务,如`Application.application`对象,它可以作为全局共享的存储区域,用于传递数据。另外,`ModuleManager`类允许对已加载和未加载的模块进行操作,包括获取模块引用...
### 使用FLEX3开发大型多人在线游戏 #### MMO游戏概述及发展历程 大型多人在线游戏(Massively Multiplayer Online Games, MMO)自问世以来便以其独特的魅力吸引了众多玩家。这类游戏通过网络将世界各地的玩家聚集...
在描述中提到的“Flex开发的,照片查看器,很好看,与大家共享下”,这暗示了我们这里有一个使用Flex编写的照片查看器应用,该应用可能具有美观的用户界面,能够展示和旋转照片。Flex提供了一系列内置组件,如Image...
4. **数据共享**:在Flex和Flash之间共享数据是常见的需求,可以使用`LocalConnection`类创建本地连接对象,实现不同沙箱(即安全域)之间的数据传递。 5. **资源共享**:如果Flash内容需要访问Flex应用中的资源,...
本手册是针对Flex3开发者的语言参考,对于深入理解和使用Flex3编程语言具有重要的指导价值。 在Flex3语言参考手册中,你可以找到关于以下关键知识点的详细信息: 1. **ActionScript 3.0基础**:ActionScript是Flex...
6. **AS3面向对象编程**:理解类、继承、封装和多态等面向对象概念对于编写高效、可维护的Flex代码至关重要。 7. **Flex应用生命周期**:理解Flex应用从初始化到销毁的各个阶段,以及如何在这些阶段中插入自定义...
8. **文档与社区支持**:尽管这个版本可能难以找到官方文档,但是Flex开发者社区通常会共享知识和资源,帮助解决遇到的问题。 总之,Flex 4.12.1 SDK对于需要开发桌面应用程序的开发者来说是一个宝贵的资源。它的...
Flex资源,顾名思义,是指与Adobe Flex相关的...学习Flex不仅需要掌握MXML和ActionScript,还需要理解面向对象编程、数据绑定和组件模型等概念,这样才能充分利用Flex的强大功能,创造出高效且用户体验优秀的Web应用。
2. 利用`Application`对象:Flex的`Application`对象可以作为数据共享的容器,通过设置其属性来传递数据。 3. 事件驱动:通过事件来传递数据,当切换到新页面时,触发一个携带数据的事件。 4. 模块化设计:如果页面...
Flex Air调用C代码是跨平台开发中的一个重要技术,它允许使用ActionScript 3的Flex应用程序与本地系统资源进行交互,比如C/C++编写的动态链接库(DLLs)或共享对象(SOs)。这个技术主要依赖于Adobe AIR的Native ...
在创建在线聊天室时,两个关键的Flex组件是NetConnection对象和SharedObject对象。NetConnection对象负责建立和管理客户端与服务器之间的连接,它是实时通信的基础。通过创建NetConnection实例并调用其connect方法,...