`
anreddy
  • 浏览: 99857 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

FLEX SharedObject本地化存储数据的介绍及应用

阅读更多

Flash的本地共享对象是在用户机器上实现持久化存储的数据集合。Flash可以从程序中控制这些数据集合,向其中存入或者从中读取大量的信息数据。

使用SharedObject对象

  对象说明:SharedObject(共享对象)可以看作是小型的数据库,我们可以用它来存储任何Flash支持的数据类型,比如数字、字符串、数组和对象等等。SharedObject按存放位置可分为本地型(存在客户端)和远程型(存在服务器端)。本地型共享对象的扩展名为.sol。
  用法:下面是关于本地型共享对象的部分最主要的方法、属性的介绍。
1)getLocal(name) 方法  “name”参数共享对象名,返回共享对象的参照
2)flush      方法  立即把数据写入共享对象
3)data      属性  存取共享对象数据的通道

只需要掌握以上这些知识就可以用共享对象来存取外部数据了。
SharedObject.getLocal(objectName [, localPath])
其中objectName是该共享对象的名字,localPath即共享对象所在路径。

// 创建一个本地保存数据的对象
var cookie:Object = SharedObject.getLocal("cookie");

方法会在默认的路径下生成一个cookie.sol文件。文件的默认大小不能超过100k,当然可以通过鼠标右击flash窗口,选择设置来管理或者禁用您的本地共享对象。可以让每个flash独立使用自己的SharedObject,当然也可以做一个全域的SharedObject让所有的swf使用,只要给localPath 赋值 "/"。
在win2k和 win xp中,默认路径为C:\Documents and Settings\username\Application Data\Macromedia\Flash Player\#SharedObjects (username为机器的用户名)

每个对象都会有一个只读属性data,用来存储被存储到“数据特性”中的对象的属性,这些属性可以共享/存储,每一个属性可以是各种基础数据类型(数组,数字布尔值等)对象。现在cookie已经存储在 SharedObject中了,以后你可以通过对SharedObject数据属性的存取来实现对cookie的存取。例如:

cookie.data.name = "张三";
cookie.data.password = "123456";
cookie.data.rememberPassword = true;

共享对象的写入会在应用程序退出时自动执行,也可以通过cookie.flush()强制写入。

  示例:按方法一设置场景,然后输入下面的代码。

var user_so = sharedobject.getlocal("user"); // 建立共享对象的参照

send_btn.onRelease = function() {

   with (user_so) {

   data.name = name; //用data属性和flush方法保存用户输入的用户名     

   flush();

 }

};

本地型共享对象只能把数据保存在默认路径下,而且扩展名只能是.sol。这种方法的作用与设置cookies的作用类似。

       只有必须在不同flash对象之间共享数据时才需要在SharedObject.getLocal()方法中指定path参数,将所有必须共享数据的flash对象都单独放到一个目录下。

SharedObject应用后生成的文件在本地的存放目录(转自:http://bbs.airia.cn/FLEX/thread-3956-1-1.aspx):

* Windows XP:
         o For Web sites: C:\Documents and Settings\<user>\Application Data\Macromedia\Flash Player\#SharedObjects\<random code>\<domain>\<path>\<object name>.sol
         o For AIR Applications, C:\Documents and Settings\<user>\Application Data\<AIR Application Reverse Domain Name>\Local Store\#SharedObjects\<flash filename>.swf\<object name>.sol
   * Windows Vista
         o C:/Users/username/<user>/AppData/Roaming/Macromedia/Flash Player/#SharedObjects/<domain>/<path>/<flash filename>.swf/<object name>.sol
   * Mac OS X:
         o For Web sites, Macintosh HD:Users:<user>:Library:Preferences:Macromedia:Flash Player:#SharedObjects:<random code>:<domain>:<path from webserver>\<object name>.sol
         o For AIR Applications, Macintosh HD:Users:<username>:Library:Preferences:<AIR Application Reverse Domain Name>:Local Store:#SharedObjects:<flash filename>.swf\<object name>.sol
   * Linux/Unix:
         o /home/<User>/.macromedia/Flash_Player/#SharedObjects/<domain>/<path>/<flash filename>.swf/<object name>.sol

在Flex中利用SharedObject实现Cookie功能(转自:http://www.gold98.net/blog/article.asp?id=748):

SharedObject提供了下面的操作本地对象的方法:
SharedObject.clear() 删除本地共享对象;
SharedObject.flush() 立即把共享对象数据写入本地文件;
SharedObject.getLocal() 创建或连接本地共享对象;
SharedObject.getSize() 取得本地共享对象的指定大小数据。

 

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init(event)" borderColor="#FFFFFF" themeColor="#FFFFFF" width="800" height="600" backgroundColor="#FFFFFF" textAlign="center" verticalAlign="middle" horizontalAlign="center" backgroundImage="@Embed(source='lt1.jpg')">
<mx:Script>
    <![CDATA[
        import mx.controls.Alert;
        import mx.events.FlexEvent;
        private function init(event:FlexEvent):void {
        // 创建一个本地保存数据的对象s  
        var test:SharedObject = SharedObject.getLocal("testcookie");
        test.data.user = "testuser";
        test.data.psw = "testpwd";
        test.flush(); //提交保存

        var test2: SharedObject = SharedObject.getLocal("testcookie");
        Alert.show(test2.data.user);
        Alert.show(test2.data.psw);
        }
    ]]>
</mx:Script>
</mx:Application>

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/meteorlWJ/archive/2009/10/15/4675659.aspx

分享到:
评论

相关推荐

    Flex数据共享与压缩

    SharedObject用于存储类似Cookie的数据,提供了一种在用户计算机上持久化小型数据的方法。每个SharedObject的大小默认限制为100KB,这是我们需要考虑数据压缩的主要原因。如果我们的XMLList或其他大数据超过了这个...

    flex的离线API

    1. **Local Storage**: Flex API 提供了`SharedObject`类,用于在客户端本地存储数据。SharedObject 可以看作是客户端的一个小型数据库,能够存储大量的二进制和文本数据。它的大小通常限制在100KB左右,但可以通过...

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

    本文将深入探讨Flex中的一个重要组件——ShareObject,也称为本地共享对象,它允许应用程序在用户计算机上存储数据,实现数据的持久化。 ShareObject是Flex提供的一种轻量级的数据存储解决方案,它类似于Web浏览器...

    Adobe Flex Builder 3组件之间的传递参数

    9. **使用SharedObject进行持久化数据共享**:对于小型数据量的共享,可以考虑使用SharedObject,它允许在客户端本地存储数据,并在浏览器关闭后仍然保留。 10. **使用ExternalInterface与JavaScript通信**:在Flex...

    [使用Flex4.5开发Android应用程序].源代码

    12. **本地存储**:Flex支持在Android设备上进行本地数据存储,如SQLite数据库或SharedObject,这对于离线应用和缓存数据非常重要。 13. **国际化和本地化**:对于面向全球用户的Android应用,支持多种语言和文化...

    FlexGrocer.rar_flex

    10. **数据存储**:购物车数据可能暂时存储在客户端的本地存储机制中,如Flash SharedObject,或者通过AJAX技术与服务器保持实时同步,确保数据的一致性和可靠性。 11. **测试与部署**:Flex应用可以编译为SWF文件...

    flex 翻页收藏

    对于收藏功能,Flex应用通常会涉及数据持久化,比如将用户收藏的项目存储在本地或远程服务器上。可以使用Flash Player的本地存储机制(如SharedObject)或者通过HTTP服务与后端数据库交互。如果使用SharedObject,...

    Flex与Flash相互调用实例

    3. SharedObject:这是一种在客户端存储小量数据的方法,类似于浏览器的Cookie。如果Flex和Flash需要共享一些临时或持久性的数据,可以利用SharedObject。 4. ExternalInterface:这个接口允许Flash内容与宿主环境...

    flex 与Java通讯

    4. SharedObject:在客户端浏览器中存储小量数据,用于实现简单的离线缓存和同步。 三、Flex与Java在J2EE整合的关键步骤 1. 配置服务器:在J2EE服务器(如Tomcat、JBoss)上部署BlazeDS或LCDS服务。 2. 创建Java...

    ShareObject对象详解

    总结,ShareObject是Flex中强大的数据共享工具,LSO提供了本地数据存储,而RSO支持服务器端数据共享,两者结合使得Flex应用程序能够实现丰富的交互性和持久性。在开发过程中,合理利用ShareObject可以提高用户体验,...

    Rss.rar_flex_rss开发

    Flex支持使用SharedObject或LocalConnection来实现简单的本地数据持久化。 7. **错误处理**:RSS源可能会出现各种问题,如URL失效、服务器错误等,因此阅读器需要有良好的错误处理机制,向用户友好地显示错误信息。...

    flash cookie 完整例子(as源码、mvc3.0源码)

    SharedObject允许在本地存储数据,其语法如: ```actionscript var so:SharedObject = SharedObject.getLocal("myCookie"); so.data.myValue = "Hello, World!"; so.flush(); ``` 在描述中提到的Flex Builder 3.0...

    flex编写的,开心农场案例

    - **本地存储**:使用Flex提供的LocalConnection或SharedObject,可以将用户的游戏进度、资源存储在本地,保证用户离开游戏后能继续。 - **服务器交互**:若需要实现多用户交互,如好友系统、市场交易,需与服务器...

    Flex试题 .txt

    优化Flex应用性能的方法包括:代码优化(如避免冗余计算和减少对象创建)、资源管理(例如使用RSL和图像优化)、缓存策略(如利用本地存储)以及网络通信优化(如数据压缩和异步加载)。 ### 21. 如何设置默认值,...

    workspace20100228.rar

    SharedObject类似于浏览器的cookies,可以在本地存储数据,然后通过JavaScript访问这些数据。然而,SharedObject的大小有限制,且JavaScript访问SharedObject通常需要通过Flash插件的接口。 6. **XMLSocket和...

    FLEX和Actionscript开发FLASH 游戏

    8. **数据持久化**:虽然Flash Player内存空间有限,但ActionScript的`SharedObject`类可以实现本地数据存储,允许游戏保存用户进度、设置等信息。 9. **事件处理**:ActionScript的事件模型使得游戏能够响应用户...

    AS殿堂之路

    8. **本地存储**:AS3可以通过SharedObject进行本地数据存储,实现简单的数据持久化。书中会讲解如何使用SharedObject进行数据读写。 9. **错误处理和调试**:良好的错误处理是编写稳定程序的关键。书中会介绍如何...

    Flex ShareObject简单应用

    2. 使用SharedObject.getLocal()方法获取一个本地ShareObject实例,如果指定的ShareObject实例已存在,则返回该实例;如果不存在,则创建一个新的实例。这个方法接受一个参数作为ShareObject实例的名称。 3. 通过...

    ActionScript 3.0 CookBook 中文翻译

    9. 数据存储:使用SharedObject进行本地数据持久化,或与服务器进行数据交换。 10. Flex框架:了解如何结合Flex SDK创建用户界面,利用MXML和ActionScript的混合编程。 通过对《ActionScript 3.0 CookBook》中文版...

    ActionScript开发技术大全 电子版

    使用LocalStorage和SharedObject进行本地数据存储;以及通过ActionScript实现复杂的动画效果和游戏功能。 总结,"ActionScript开发技术大全"涵盖了ActionScript的基础语法、面向对象编程、与Flash的集成、版本更新...

Global site tag (gtag.js) - Google Analytics