SharedObject.flush()

可用性

Flash Player 6。

用法

myLocalSharedObject.flush([minimumDiskSpace])

参数

minimumDiskSpace 一个可选整数,指定必须为此对象分配的字节数。默认值为 0。

返回

布尔值 truefalse,或者是字符串值 "pending"

说明

方法;将本地永久共享对象立即写入本地文件。如果您不使用此方法,则 Flash 会在共享对象会话结束时(也就是说,在 SWF 文件关闭时、在共享对象不再具有引用而被作为垃圾回收时、或者在您调用 SharedObject.data 时)将共享对象写入文件。

如果此方法返回 "pending",Flash Player 将显示对话框要求用户增加磁盘空间量以供此域中的对象使用。若要允许将来保存共享对象时其空间能够“增长”,从而避免返回值 "pending",请为 minimumDiskSpace 传递一个值。当 Flash 尝试写入文件时,它查找传递到
minimumDiskSpace 的字节数,而不是查找以共享对象的当前大小保存该对象刚刚够用的空间。

例如,如果预期共享对象增长到最大大小 500 字节,则即使它开始时要小得多,也为 minimumDiskSpace 传递 500。如果 Flash 要求用户为该共享对象分配磁盘空间,它将要
求 500 字节。在用户分配了请求的空间量之后,当以后尝试刷新该对象时(只要其大小不超过 500 字节),Flash 将无需要求更多的空间。

在用户响应该对话框之后,此方法将被再次调用并返回 truefalse;另外,将用
SharedObject.Flush.SuccessSharedObject.Flush.Failedcode 属性调用
SharedObject.onStatus

有关更多信息,请参见本地磁盘空间注意事项

示例

下面的函数获取共享对象 SO,并用用户提供的设置填充可写属性。最后,调用 flush() 以保存设置并分配最少 1000 字节的磁盘空间。 

this.SyncSettingsCore=function(soname, override, settings)
{
  var SO=SharedObject.getLocal(soname, "http://www.mydomain.com/app/sys");

  // 设置列表索引
  var i;
  
  // 对于设置中每个指定的值:
  // 如果 override 为 true,则将永久设置设置为所提供的值。
  // 如果 override 为 false,则获取永久设置,除非
  // 没有永久设置,在这种情况下,将其设置为所提供的值。
  for (i in settings) {
    if (override || (SO.data[i] == null)) {
      SO.data[i]= settings[i];
    } else {
      settings[i]= SO.data[i];
    }
  }
  SO.flush(1000);
}