SharedObject.flush()

Availability

Flash Player 6.

Usage

myLocalSharedObject.flush([minimumDiskSpace])

Parameters

minimumDiskSpace An optional integer specifying the number of bytes that must be allotted for this object. The default value is 0.

Returns

A Boolean value of true or false, or a string value of "pending".

Description

Method; immediately writes a locally persistent shared object to a local file. If you don't use this method, Flash writes the shared object to a file when the shared object session ends—that is, when the SWF file is closed, when the shared object is garbage-collected because it no longer has any references to it, or when you call SharedObject.data.

If this method returns "pending", the Flash Player displays a dialog box asking the user to increase the amount of disk space available to objects from this domain. To allow space for the shared object to "grow" when it is saved in the future, thus avoiding return values of "pending", pass a value for minimumDiskSpace. When Flash tries to write the file, it looks for the number of bytes passed to minimumDiskSpace, instead of looking for just enough space to save the shared object at its current size.

For example, if you expect a shared object to grow to a maximum size of 500 bytes, even though it may start out much smaller, pass 500 for minimumDiskSpace. If Flash asks the user to allot disk space for the shared object, it will ask for 500 bytes. After the user allots the requested amount of space, Flash won't have to ask for more space on future attempts to flush the object (as long as its size doesn't exceed 500 bytes).

After the user responds to the dialog box, this method is called again and returns either true or false; also, SharedObject.onStatus is invoked with a code property of SharedObject.Flush.Success or SharedObject.Flush.Failed.

For more information, see Local disk space considerations.

Example

The following function gets a shared object, SO, and fills writable properties with user-provided settings. Finally, flush() is called to save the settings and allot a minimum of 1000 bytes of disk space.

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

  // settings list index
  var i;
  
  // For each specified value in settings:
  // If override is true, set the persistent setting to the provided value.
  // If override is false, fetch the persistent setting, unless there
  // isn't one, in which case, set it to the provided value.
  for (i in settings) {
    if (override || (SO.data[i] == null)) {
      SO.data[i]= settings[i];
    } else {
      settings[i]= SO.data[i];
    }
  }
  SO.flush(1000);
}