Clase SharedObject

Disponibilidad

Flash Player 6.

Descripción

Los objetos compartidos presentan muchas posibilidades: ofrecen la posibilidad de compartir datos en tiempo real entre objetos que son persistentes en el equipo del usuario. Los objetos locales compartidos pueden considerarse como "cookies".

Puede utilizarlos para mantener la constancia local. Ésta es la forma más simple de utilizar un objeto compartido. Por ejemplo, puede llamar a SharedObject.getLocal() para crear un objeto compartido, como una calculadora con memoria, en el reproductor. Puesto que el objeto compartido es persistente localmente, Flash guarda sus atributos de datos en el equipo del usuario cuando finaliza el archivo SWF. La próxima vez que se ejecute el archivo SWF, la calculadora contendrá los valores que tenía al finalizar el archivo SWF. Como alternativa, si ha establecido las propiedades del objeto compartido en null antes de que finalice el archivo SWF, la próxima vez que se ejecute el archivo SWF la calculadora se abrirá sin ningún valor.

Para crear un objeto local compartido, utilice la sintaxis siguiente:

// Crear un objeto local compartido 
so = SharedObject.getLocal("foo");

Consideraciones sobre el espacio en el disco local

Los objetos locales compartidos siempre son persistentes en el cliente, siempre que haya memoria y espacio en disco disponibles.

De forma predeterminada, Flash puede guardar localmente objetos remotos compartidos y persistentes de hasta 100 K de tamaño. Cuando se intenta guardar un objeto de mayor tamaño, Flash Player muestra el cuadro de diálogo Almacenamiento local, desde el que el usuario puede permitir o denegar el almacenamiento local al dominio que está solicitando el acceso. Asegúrese de que establece un tamaño mínimo de 215 x 138 píxeles; éste es el tamaño mínimo que Flash necesita para visualizar el cuadro de diálogo.

Si el usuario hace clic en Permitir, el objeto se guarda y se invoca SharedObject.onStatus con una propiedad code de SharedObject.Flush.Success; si el usuario hace clic en Denegar, el objeto no se guarda y se invoca SharedObject.onStatus con una propiedad code de SharedObject.Flush.Failed.

El usuario también puede especificar la configuración de almacenamiento local permanente para un dominio determinado; para ello, debe hacer clic con el botón derecho del ratón (Windows) o presionar la tecla Control y hacer clic (Macintosh) durante la reproducción de un archivo SWF, seleccionar Configuración y abrir el panel Almacenamiento local.

En la lista siguiente se indica de forma resumida la interacción entre las opciones de espacio en disco del usuario y los objetos compartidos:

Adicionalmente, si el usuario selecciona un valor inferior a la cantidad de espacio en disco que se está utilizando para los datos persistentes locales, el reproductor advierte al usuario que se eliminarán los objetos compartidos que se hayan almacenado localmente.

Nota: cuando se ejecuta Flash Player en el entorno de edición, no hay limitaciones de tamaño.

Resumen de métodos para la clase SharedObject

Método

Descripción

SharedObject.clear()

Purga todos los datos del objeto compartido y elimina dicho objeto del disco.

SharedObject.flush()

Escribe inmediatamente un objeto local compartido y persistente en un archivo local.

SharedObject.getLocal()

Devuelve una referencia para un objeto local compartido y persistente que sólo está disponible para el cliente actual.

SharedObject.getSize()

Obtiene el tamaño actual del objeto compartido, expresado en bytes.

Resumen de propiedades para la clase SharedObject

Propiedad (sólo lectura)

Descripción

SharedObject.data

Colección de atributos asignados a la propiedad data del objeto; estos atributos pueden ser compartidos o almacenados.

Resumen de controladores de eventos para la clase SharedObject

Controlador de eventos

Descripción

SharedObject.onStatus

Se invoca cada vez que se emite un error, una advertencia o una nota informativa para un objeto compartido.

Constructor para la clase SharedObject

Para más información sobre la creación de objetos locales compartidos, consulte SharedObject.getLocal().