以下内容是对网上一些资料的总结

Flex SharedObject 介绍(转自http://www.eb163.com/club/thread-3235-1-1.html):

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

-----------------------------

自从开发了AIR,序列化一下子变得丰富了。向本地磁盘保存(比如保存配置文件等等)可以写普通文件,用内嵌的sqlite引擎。不过在我看来,还是sharedObject比较好,至少有这么几个好处:

直接存储actionscript数据结构,不用自己写序列化和反序列化算法。其它的像sqlite,就不得不在数据结构和字符串之间转换而且还不得不类型检查。 
过程是同步的。 像sqlite就不得不用事件监听来读取数据,异步方式增加workflow复杂性。 
不过也有些坏处:

存储量有限。这几乎不会是问题,有哪个AIR会存储很多很多内容呢。 
不够安全。除非不是一般人,否则没人知道存储在哪里。 
我在公司的AIR产品上重构了配置文件部分,并开始使用sharedObject保存内容,感觉简单了很多。这里再推荐几个东西:

sharedObject查看工具:An AIR Shared Object Reader

http://blog.coursevector.com/minerva

sharedObject保存位置:

Windows XP:
For Web sites: C:\Documents and Settings\<user>\Application Data\Macromedia\Flash Player\#SharedObjects\<random code>\<domain>\<path>\<object name>.sol
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
C:/Users/username/<user>/AppData/Roaming/Macromedia/Flash Player/#SharedObjects/<domain>/<path>/<flash filename>.swf/<object name>.sol 
Mac OS X:
For Web sites, Macintosh HD:Users:<user>:Library:Preferences:Macromedia:Flash Player:#SharedObjects:<random code>:<domain>:<path from webserver>\<object name>.sol
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:
/home/<User>/.macromedia/Flash_Player/#SharedObjects/<domain>/<path>/<flash filename>.swf/<object name>.sol
Edison.sl的签名 
文章来自: 闪客居(http://www.flashas.net/) 详文参考:http://www.flashas.net/html/air/20090416/4049.html

-------------------------------

深入SharedObject----本地共享对象 收藏 
SharedObject是一个用来使数据持久的类,具有将数据保存到本地和远程(服务器)的功能。

首先看本地数据持久

// objectName是该共享对象的名字, localPath即共享对象所在路径

SharedObject.getLocal(objectName [, localPath])

下面创建一个共享受对象

// 创建一个本地保存数据的对象

var cookie:Object = SharedObject.getLocal("cookie");

会在默认的路径下生成一个.sol文件

我用的是XP系统,拥护名是shanghai, 这个默认的路径在我使用的机器上如下:

C:\Documents and Settings\shanghai\Application Data\Macromedia\Flash Player\localhost

在该目录下会有一些其他的目录,慢慢找就会找到cookie.sol文件, 数据就保存在这个文件里头。

哇鳃,这里我也没弄明白,这个路径是怎么回事,

那么下面开始注意 cookie.data

每一个共享对象都会有这个属性data,你希望保存的数据就是保存在这个data底下。

比如说

cookie.data.name = "sshc625";

cookie.data.sex = "男";

cookie.data.school = "WHUT";

那么我在这个data底下保存了我的一些信息。

通常标准做法是这样的。

if(cookie.data.name == undefined) {

cookie.data.name = "sshc625";

}

路径问题

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/sshcx/archive/2006/06/07/777580.aspx

===========================

转载于:https://www.cnblogs.com/Stephenchao/p/4487147.html

Flash本地共享对象 SharedObject相关推荐

  1. 在Flex中使用本地共享对象

    本地共享对象的概念想必都很清楚了,有些类似于浏览器的Cookie,在Flash中提供了下面的操作本地对象的方法: SharedObject.clear() 删除本地共享对象 SharedObject. ...

  2. FMS3系列(六):使用远程共享对象(SharedObject)实现多人时时在线聊天(Flex | Flash)

    FMS开发中,经常会使用共享对象来同步用户和存储数据.对于实现广播文字信息实现聊天的支持非常强大,还可以跟踪用户的时时动作,在开发Flash多人在线游戏中的应用也非常广阔. 在使用FMS开发共享对象时 ...

  3. java 远程共享_【原创】(扫盲)远程共享对象SharedObject的用法

    学习fcs也有差不多一个月了,感觉最有特色的东西还是SharedObject. 今天就写个基本的教程关于它,第一次写教程(以前都是看教程-_-),手心都出汗了,心怕写得有错误导读者就惨了 , 斑竹有空 ...

  4. flashcom中远程共享对象SharedObject的用法

    觉得这篇文章比较好,转载回来. 学习fcs也有差不多一个月了,感觉最有特色的东西还是SharedObject. SharedObject有不少东西,本地操作就不说了(相信很多人没接触fcs也用过);就 ...

  5. FMS关于代理共享对象

    一个代理共享对象是一个remote共享对象,但代替在一个客户机和服务器应用程序之间被共享,代理共享对象是在两个不 同的Flash Media Server应用程序,或是在同一个应用程序的不同实例间被共 ...

  6. ctf速成_速成:共享对象摆弄

    ctf速成 Personal Hit Counter Shared Object Example >> 个人命中计数器共享对象示例>> Messing around with ...

  7. Terracotta - 分布式共享对象

    Terracotta是一种分布式java集群技术,它巧妙得隐藏了多个分布式JVM带来的复杂性,使得java对象能够透明得在多个JVM集群中进行分享和同步,并能够进行持久化.从某种意义上讲它类似于had ...

  8. JAVA并发编程实战——共享对象

    目录 思维导图 1. 可见性 1. 1 过期数据 1.2 锁和可见性 1.3 Volatile变量 2. 发布和逸出 2.1 安全构建实践 3. 线程封闭 3.1 栈限制 3.2 ThreadLoca ...

  9. Spring JDBC-使用Spring JDBC获取本地连接对象以及操作BLOB/CLOB类型数据

    概述 如何获取本地数据连接 示例从DBCP数据源中获取Oracle的本地连接对象 相关接口操作 LobCreator LobHandler 插入LOB类型的数据 以块数据的方式读取LOB数据 以流数据 ...

最新文章

  1. Java中jsonObject与String等互转问题
  2. 什么是 ANSI C 和 GNU C
  3. docker 开启命令\退出容器
  4. 用科技共创美好:英特尔助力北京冬奥会新体验
  5. 一个方法多个return_CVPR 2020(Oral) | 旷视提出CrowdDetection:密集场景检测新方法:一个候选框,多个预测结果...
  6. 开始学习C#.Net
  7. Java考试系统题目和选项乱序实现
  8. XPI 文件安装方法
  9. 计算机网络 - mbed TLS
  10. 计算机word怎么插入图片,word如何插入图片 Word2003如何插入电脑中图片
  11. 中科大一所学校撑起中国人工智能半壁江山
  12. Mac下载pd虚拟机以及激活
  13. 洛谷P1428 小鱼比可爱
  14. 如何才能修炼成一名不可替代的程序员?
  15. Mac的谷歌浏览器安装Vue.js.devtools插件
  16. 远程连接android手机(调试)
  17. Android毕业设计答辩会问什么问题,毕业论文答辩一般会问什么问题怎么回答
  18. 新思维研究生英语第1-12单元 课文翻译习题答案
  19. Caused by: java.lang.NoSuchMethodError:No virtual method isSuccess()Z in class Lretrofit2/Response;
  20. PHP错题本功能实现,收藏| 最高效的"错题本"制作攻略!手把手教会你!

热门文章

  1. 《流浪地球 2》的硬核黑科技
  2. 清博大数据网络舆情监测\控软件功能作用与类似软件有哪些详解
  3. [转] eclipse SVN中文件修改后图标不变黑星解决
  4. 工时管理对项目的重要性 借助工时管理系统的好处
  5. 简单的控制台梭哈游戏
  6. spark之parquet
  7. xinxin -制作网页
  8. C#控件及常用设计整
  9. javascript之10秒倒计时
  10. 【Python】使用生成器(yield from)和装饰器封装函数