标签:
it |
SharedObject 类用于在用户计算机上读取和存储有限的数据量。共享对象提供永久贮存在用户计算机上的对象之间的实时数据共享。本地共享对象与浏览器 cookie 类似。
下面是共享对象的三种可能用法:
- 存储用户高分的游戏。游戏可以为用户提供个人化数据(如用户名和高分),而无须在服务器上专门存储。
- 可以联机或脱机工作的电话簿应用程序。作为放映文件应用程序提供的电话簿可以包含本地数据缓存,其中存有用户输入的姓名和电话号码的列表。当 Internet 连接可用时,应用程序将从服务器检索最新信息。当没有连接可用时,应用程序将使用在共享对象中保存的最新数据。
- 复杂网站的用户首选项或跟踪数据,如用户阅读了新闻网站上哪些文章的记录。跟踪此信息将允许您以不同方式分别显示已经阅读的文章和新的未读文章。在用户计算机上存储此信息可减小服务器负载。
本地共享对象维护本地永久性。例如,您可以调用
SharedObject.getLocal()
以创建一个包含游戏中高分的共享对象。因为共享对象在本地永久贮存,所以当关闭游戏时,Flash
会将其数据属性保存在用户的计算机上。下次打开游戏时,将显示以前会话中的高分。或者,您可以在关闭游戏之前,将共享对象的属性设置为
null
。SWF
文件下次运行时,游戏将打开,但不显示以前的高分。
若要创建本地共享对象,请使用以下语法:
var so:SharedObject = SharedObject.getLocal("userHighScore"); so.data.highScore = new Number(); so.flush();
在示例中,显式刷新 共享对象或将其写入磁盘。在应用程序关闭时,自动刷新共享对象;但是,在此处显示它是为了说明将数据写入磁盘的步骤。
本地磁盘空间注意事项:本地共享对象将非常有用,但它们也有一些限制,这些限制很重要,您在设计应用程序时要予以考虑。有时可能不允许 SWF 文件写入本地共享对象,有时可能在您不知情的情况下删除在本地共享对象中存储的数据。Flash Player 用户可以管理对单个域或所有域可用的磁盘空间。当用户降低可用磁盘空间量时,一些本地共享对象可能会被删除。Flash Player 用户还具有隐私控件,它们可防止第三方域(当前浏览器地址栏中域之外的域)读取或写入本地共享对象。
注意:本地内容始终可以将第三方共享对象写入磁盘,即使不允许由第三方域将共享对象写入磁盘。
Macromedia
建议您检查与可用磁盘空间量和用户隐私控件相关的故障。在调用
getLocal()
和 flush()
时执行这些检查:
SharedObject.getLocal()
-
当用户已禁用第三方共享对象,并且您的 SWF
文件的域与浏览器地址栏中的域不匹配时,此方法返回
null
。
SharedObject.flush()
-
当用户已对您的域或所有域禁用共享对象时,此方法返回
false
。当需要额外存储空间,且用户必须以交互方式决定是否允许增加时,它返回
"pending"
。
如果您的 SWF 文件尝试创建或修改本地共享对象,请确保 SWF
文件的宽度至少为 215 像素,高度至少为 138
像素,这是用于显示提示用户增加其本地共享对象存储限制的对话框的最小尺寸。如果您的
SWF 文件小于这些尺寸,且需要增加存储限制,则
SharedObject.flush()
失败,返回
"pending"
,但此后会调用
SharedObject.onStatus
处理函数,结果为
"SharedObject.Flush.Failed"
。
可用性:ActionScript 1.0;Flash Player 6
另请参见
getLocal(SharedObject.getLocal 方法),flush(SharedObject.flush 方法),onStatus(SharedObject.onStatus 处理函数)
属性摘要
修饰符 |
属性 |
说明 |
---|---|---|
|
分配给对象的 |
继承自 Object 类的属性
constructor(Object.constructor 属性),__proto__(Object.__proto__ 属性),prototype(Object.prototype 属性),__resolve(Object.__resolve 属性) |
事件摘要
事件 |
说明 |
---|---|
|
每次为共享对象公布错误、警告或信息性通知时调用。 |
方法摘要
修饰符 |
签名 |
说明 |
---|---|---|
|
清除共享对象中的所有数据并从磁盘中删除共享对象。 |
|
|
将本地永久共享对象立即写入本地文件。 |
|
|
|
返回对本地永久共享对象的引用,该对象只可用于当前客户端。 |
|
获取共享对象的当前大小(以字节为单位)。 |
继承自 Object 类的方法