flush (SharedObject.flush method)

public flush([minDiskSpace:Number]) : Object

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, that is when the shared object is garbage-collected because it no longer has any references to it or you call SharedObject.clear().

If this method returns "pending", Flash Player shows 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, which avoids 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 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 might start out much smaller, pass 500 for minimumDiskSpace. If Flash asks the user to allot disk space for the shared object, it asks 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; SharedObject.onStatus is also invoked with a code property of SharedObject.Flush.Success or SharedObject.Flush.Failed.

For more information, see "Local disk space considerations" in the SharedObject class overview.

Availability: ActionScript 1.0; Flash Player 6

Parameters

minDiskSpace:Number [optional] - An integer specifying the number of bytes that must be allotted for this object. The default value is 0.

Returns

Object - A Boolean value: true or false; or a string value of "pending", as described in the following list:

Note: Local content can always write shared objects from third-party domains (domains other than the domain in the current browser address bar) to disk, even if writing of third-party shared objects to disk is disallowed.

Example

The following function gets a shared object, my_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:String, override:Boolean, settings:Object) {
    var my_so:SharedObject = 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 || (my_so.data[i] == null)) {
        my_so.data[i] = settings[i];
    } else {
        settings[i] = my_so.data[i];
    }
    }
    my_so.flush(1000);
};

See also

clear (SharedObject.clear method), onStatus (SharedObject.onStatus handler)


Flash CS3


 

Send me an e-mail when comments are added to this page | Comment Report

Current page: http://livedocs.adobe.com/flash/9.0/main/00002121.html