Referencia de ActionScript® 3.0 para la plataforma de Adobe® Flash®
Inicio  |  Ocultar lista de paquetes y clases |  Paquetes  |  Clases  |  Novedades  |  Índice  |  Apéndices  |  ¿Por qué hay texto en inglés?
Filtros: AIR 30.0 y versiones anteriores, Flash Player 30.0 y versiones anteriores, Flash Lite 4
Flex 4.6 y versiones anteriores, Flash Pro CS6 y versiones anteriores
Ocultar filtros
flash.net 

SharedObject  - AS3

Paquetesx

Nivel superior
adobe.utils
air.desktop
air.net
air.update
air.update.events
coldfusion.air
coldfusion.air.errors
coldfusion.air.events
coldfusion.service
coldfusion.service.events
coldfusion.service.mxml
com.adobe.acm.solutions.authoring.domain.extensions
com.adobe.acm.solutions.ccr.domain.extensions
com.adobe.consulting.pst.vo
com.adobe.dct.component
com.adobe.dct.component.datadictionary
com.adobe.dct.component.datadictionaryElement
com.adobe.dct.component.dataElementsPanel
com.adobe.dct.component.toolbars
com.adobe.dct.event
com.adobe.dct.exp
com.adobe.dct.model
com.adobe.dct.service
com.adobe.dct.service.provider
com.adobe.dct.transfer
com.adobe.dct.util
com.adobe.dct.view
com.adobe.ep.taskmanagement.domain
com.adobe.ep.taskmanagement.event
com.adobe.ep.taskmanagement.filter
com.adobe.ep.taskmanagement.services
com.adobe.ep.taskmanagement.util
com.adobe.ep.ux.attachmentlist.component
com.adobe.ep.ux.attachmentlist.domain
com.adobe.ep.ux.attachmentlist.domain.events
com.adobe.ep.ux.attachmentlist.domain.renderers
com.adobe.ep.ux.attachmentlist.skin
com.adobe.ep.ux.attachmentlist.skin.renderers
com.adobe.ep.ux.content.event
com.adobe.ep.ux.content.factory
com.adobe.ep.ux.content.handlers
com.adobe.ep.ux.content.managers
com.adobe.ep.ux.content.model.asset
com.adobe.ep.ux.content.model.preview
com.adobe.ep.ux.content.model.relation
com.adobe.ep.ux.content.model.search
com.adobe.ep.ux.content.model.toolbar
com.adobe.ep.ux.content.search
com.adobe.ep.ux.content.services
com.adobe.ep.ux.content.services.load
com.adobe.ep.ux.content.services.permissions
com.adobe.ep.ux.content.services.preview
com.adobe.ep.ux.content.services.providers
com.adobe.ep.ux.content.services.query
com.adobe.ep.ux.content.services.relationships
com.adobe.ep.ux.content.services.search.lccontent
com.adobe.ep.ux.content.services.version
com.adobe.ep.ux.content.view
com.adobe.ep.ux.content.view.components.activate
com.adobe.ep.ux.content.view.components.grid
com.adobe.ep.ux.content.view.components.grid.hover
com.adobe.ep.ux.content.view.components.grid.hover.component
com.adobe.ep.ux.content.view.components.grid.renderers
com.adobe.ep.ux.content.view.components.relationships
com.adobe.ep.ux.content.view.components.review
com.adobe.ep.ux.content.view.components.search.renderers
com.adobe.ep.ux.content.view.components.searchpod
com.adobe.ep.ux.content.view.components.toolbar
com.adobe.ep.ux.content.view.components.toolbar.controlRenderers
com.adobe.ep.ux.content.view.components.version
com.adobe.ep.ux.documentsubmit.component
com.adobe.ep.ux.documentsubmit.domain
com.adobe.ep.ux.documentsubmit.skin
com.adobe.ep.ux.taskaction.component
com.adobe.ep.ux.taskaction.domain
com.adobe.ep.ux.taskaction.domain.events
com.adobe.ep.ux.taskaction.skin
com.adobe.ep.ux.taskdetails.component
com.adobe.ep.ux.taskdetails.domain
com.adobe.ep.ux.taskdetails.skin
com.adobe.ep.ux.tasklist.component
com.adobe.ep.ux.tasklist.domain
com.adobe.ep.ux.tasklist.skin
com.adobe.ep.ux.webdocumentviewer.domain
com.adobe.exm.expression
com.adobe.exm.expression.error
com.adobe.exm.expression.event
com.adobe.exm.expression.impl
com.adobe.fiber.runtime.lib
com.adobe.fiber.services
com.adobe.fiber.services.wrapper
com.adobe.fiber.styles
com.adobe.fiber.util
com.adobe.fiber.valueobjects
com.adobe.gravity.binding
com.adobe.gravity.context
com.adobe.gravity.flex.bundleloader
com.adobe.gravity.flex.progress
com.adobe.gravity.flex.serviceloader
com.adobe.gravity.framework
com.adobe.gravity.init
com.adobe.gravity.service.bundleloader
com.adobe.gravity.service.logging
com.adobe.gravity.service.manifest
com.adobe.gravity.service.progress
com.adobe.gravity.tracker
com.adobe.gravity.ui
com.adobe.gravity.utility
com.adobe.gravity.utility.async
com.adobe.gravity.utility.error
com.adobe.gravity.utility.events
com.adobe.gravity.utility.factory
com.adobe.gravity.utility.flex.async
com.adobe.gravity.utility.logging
com.adobe.gravity.utility.message
com.adobe.gravity.utility.sequence
com.adobe.gravity.utility.url
com.adobe.guides.control
com.adobe.guides.domain
com.adobe.guides.i18n
com.adobe.guides.spark.components.skins
com.adobe.guides.spark.components.skins.mx
com.adobe.guides.spark.headers.components
com.adobe.guides.spark.headers.skins
com.adobe.guides.spark.layouts.components
com.adobe.guides.spark.layouts.skins
com.adobe.guides.spark.navigators.components
com.adobe.guides.spark.navigators.renderers
com.adobe.guides.spark.navigators.skins
com.adobe.guides.spark.util
com.adobe.guides.spark.wrappers.components
com.adobe.guides.spark.wrappers.skins
com.adobe.guides.submit
com.adobe.icc.dc.domain
com.adobe.icc.dc.domain.factory
com.adobe.icc.editors.events
com.adobe.icc.editors.handlers
com.adobe.icc.editors.managers
com.adobe.icc.editors.model
com.adobe.icc.editors.model.config
com.adobe.icc.editors.model.el
com.adobe.icc.editors.model.el.operands
com.adobe.icc.editors.model.el.operators
com.adobe.icc.enum
com.adobe.icc.external.dc
com.adobe.icc.obj
com.adobe.icc.services
com.adobe.icc.services.category
com.adobe.icc.services.config
com.adobe.icc.services.download
com.adobe.icc.services.export
com.adobe.icc.services.external
com.adobe.icc.services.formbridge
com.adobe.icc.services.fragmentlayout
com.adobe.icc.services.layout
com.adobe.icc.services.letter
com.adobe.icc.services.locator
com.adobe.icc.services.module
com.adobe.icc.services.render
com.adobe.icc.services.submit
com.adobe.icc.services.user
com.adobe.icc.token
com.adobe.icc.vo
com.adobe.icc.vo.render
com.adobe.icomm.assetplacement.controller
com.adobe.icomm.assetplacement.controller.utils
com.adobe.icomm.assetplacement.data
com.adobe.icomm.assetplacement.model
com.adobe.livecycle.assetmanager.client
com.adobe.livecycle.assetmanager.client.event
com.adobe.livecycle.assetmanager.client.handler
com.adobe.livecycle.assetmanager.client.managers
com.adobe.livecycle.assetmanager.client.model
com.adobe.livecycle.assetmanager.client.model.cms
com.adobe.livecycle.assetmanager.client.service
com.adobe.livecycle.assetmanager.client.service.search
com.adobe.livecycle.assetmanager.client.service.search.cms
com.adobe.livecycle.assetmanager.client.utils
com.adobe.livecycle.content
com.adobe.livecycle.rca.model
com.adobe.livecycle.rca.model.constant
com.adobe.livecycle.rca.model.document
com.adobe.livecycle.rca.model.participant
com.adobe.livecycle.rca.model.reminder
com.adobe.livecycle.rca.model.stage
com.adobe.livecycle.rca.service
com.adobe.livecycle.rca.service.core
com.adobe.livecycle.rca.service.core.delegate
com.adobe.livecycle.rca.service.process
com.adobe.livecycle.rca.service.process.delegate
com.adobe.livecycle.rca.token
com.adobe.livecycle.ria.security.api
com.adobe.livecycle.ria.security.service
com.adobe.mosaic.layouts
com.adobe.mosaic.layouts.dragAndDrop
com.adobe.mosaic.layouts.interfaces
com.adobe.mosaic.mxml
com.adobe.mosaic.om.constants
com.adobe.mosaic.om.events
com.adobe.mosaic.om.impl
com.adobe.mosaic.om.interfaces
com.adobe.mosaic.skinning
com.adobe.mosaic.sparklib.editors
com.adobe.mosaic.sparklib.optionMenu
com.adobe.mosaic.sparklib.scrollableMenu
com.adobe.mosaic.sparklib.scrollableMenu.skins
com.adobe.mosaic.sparklib.tabLayout
com.adobe.mosaic.sparklib.tabLayout.events
com.adobe.mosaic.sparklib.tabLayout.layouts
com.adobe.mosaic.sparklib.tabLayout.skins
com.adobe.mosaic.sparklib.text
com.adobe.mosaic.sparklib.util
com.adobe.solutions.acm.authoring.presentation
com.adobe.solutions.acm.authoring.presentation.actionbar
com.adobe.solutions.acm.authoring.presentation.common
com.adobe.solutions.acm.authoring.presentation.events
com.adobe.solutions.acm.authoring.presentation.fragment
com.adobe.solutions.acm.authoring.presentation.letter
com.adobe.solutions.acm.authoring.presentation.letter.data
com.adobe.solutions.acm.authoring.presentation.preview
com.adobe.solutions.acm.authoring.presentation.rte
com.adobe.solutions.acm.ccr.presentation
com.adobe.solutions.acm.ccr.presentation.contentcapture
com.adobe.solutions.acm.ccr.presentation.contentcapture.events
com.adobe.solutions.acm.ccr.presentation.contentcapture.preview
com.adobe.solutions.acm.ccr.presentation.datacapture
com.adobe.solutions.acm.ccr.presentation.datacapture.renderers
com.adobe.solutions.acm.ccr.presentation.pdf
com.adobe.solutions.exm
com.adobe.solutions.exm.authoring
com.adobe.solutions.exm.authoring.components.controls
com.adobe.solutions.exm.authoring.components.toolbars
com.adobe.solutions.exm.authoring.domain
com.adobe.solutions.exm.authoring.domain.expression
com.adobe.solutions.exm.authoring.domain.impl
com.adobe.solutions.exm.authoring.domain.method
com.adobe.solutions.exm.authoring.domain.variable
com.adobe.solutions.exm.authoring.enum
com.adobe.solutions.exm.authoring.events
com.adobe.solutions.exm.authoring.model
com.adobe.solutions.exm.authoring.renderer
com.adobe.solutions.exm.authoring.view
com.adobe.solutions.exm.expression
com.adobe.solutions.exm.impl
com.adobe.solutions.exm.impl.method
com.adobe.solutions.exm.method
com.adobe.solutions.exm.mock
com.adobe.solutions.exm.mock.method
com.adobe.solutions.exm.runtime
com.adobe.solutions.exm.runtime.impl
com.adobe.solutions.exm.variable
com.adobe.solutions.prm.constant
com.adobe.solutions.prm.domain
com.adobe.solutions.prm.domain.factory
com.adobe.solutions.prm.domain.impl
com.adobe.solutions.prm.domain.manager
com.adobe.solutions.prm.presentation.asset
com.adobe.solutions.prm.presentation.constant
com.adobe.solutions.prm.presentation.document
com.adobe.solutions.prm.presentation.event
com.adobe.solutions.prm.presentation.file
com.adobe.solutions.prm.presentation.project
com.adobe.solutions.prm.presentation.team
com.adobe.solutions.prm.presentation.util
com.adobe.solutions.prm.service
com.adobe.solutions.prm.services.impl
com.adobe.solutions.prm.vo
com.adobe.solutions.rca.constant
com.adobe.solutions.rca.domain
com.adobe.solutions.rca.domain.common
com.adobe.solutions.rca.domain.factory
com.adobe.solutions.rca.domain.impl
com.adobe.solutions.rca.domain.impl.manager
com.adobe.solutions.rca.domain.manager
com.adobe.solutions.rca.presentation
com.adobe.solutions.rca.presentation.comment
com.adobe.solutions.rca.presentation.constant
com.adobe.solutions.rca.presentation.event
com.adobe.solutions.rca.presentation.gantt
com.adobe.solutions.rca.presentation.gantt.ruler
com.adobe.solutions.rca.presentation.template
com.adobe.solutions.rca.presentation.template.audit
com.adobe.solutions.rca.presentation.template.definition
com.adobe.solutions.rca.presentation.template.documents
com.adobe.solutions.rca.presentation.template.stages
com.adobe.solutions.rca.presentation.util
com.adobe.solutions.rca.service
com.adobe.solutions.rca.services.impl
com.adobe.solutions.rca.vo
com.adobe.solutions.rca.vo.um
com.adobe.viewsource
fl.accessibility
fl.containers
fl.controls
fl.controls.dataGridClasses
fl.controls.listClasses
fl.controls.progressBarClasses
fl.core
fl.data
fl.display
fl.events
fl.ik
fl.lang
fl.livepreview
fl.managers
fl.motion
fl.motion.easing
fl.rsl
fl.text
fl.transitions
fl.transitions.easing
fl.video
flash.accessibility
flash.concurrent
flash.crypto
flash.data
flash.desktop
flash.display
flash.display3D
flash.display3D.textures
flash.errors
flash.events
flash.external
flash.filesystem
flash.filters
flash.geom
flash.globalization
flash.html
flash.media
flash.net
flash.net.dns
flash.net.drm
flash.notifications
flash.permissions
flash.printing
flash.profiler
flash.sampler
flash.security
flash.sensors
flash.system
flash.text
flash.text.engine
flash.text.ime
flash.ui
flash.utils
flash.xml
flashx.textLayout
flashx.textLayout.compose
flashx.textLayout.container
flashx.textLayout.conversion
flashx.textLayout.edit
flashx.textLayout.elements
flashx.textLayout.events
flashx.textLayout.factory
flashx.textLayout.formats
flashx.textLayout.operations
flashx.textLayout.utils
flashx.undo
ga.controls
ga.layouts
ga.model
ga.uiComponents
ga.util
ga.views
ga.wrappers
lc.foundation
lc.foundation.domain
lc.foundation.events
lc.foundation.ui
lc.foundation.util
lc.preloader
lc.procmgmt
lc.procmgmt.commands
lc.procmgmt.domain
lc.procmgmt.events
lc.procmgmt.formbridge
lc.procmgmt.impl
lc.procmgmt.ui.attachments
lc.procmgmt.ui.controls
lc.procmgmt.ui.controls.card
lc.procmgmt.ui.controls.renderer
lc.procmgmt.ui.help
lc.procmgmt.ui.layout
lc.procmgmt.ui.presentationmodel
lc.procmgmt.ui.process
lc.procmgmt.ui.search
lc.procmgmt.ui.startpoint
lc.procmgmt.ui.task
lc.procmgmt.ui.task.form
lc.procmgmt.ui.task.form.commands
lc.procmgmt.ui.tracking
mx.accessibility
mx.automation
mx.automation.air
mx.automation.delegates
mx.automation.delegates.advancedDataGrid
mx.automation.delegates.charts
mx.automation.delegates.containers
mx.automation.delegates.controls
mx.automation.delegates.controls.dataGridClasses
mx.automation.delegates.controls.fileSystemClasses
mx.automation.delegates.core
mx.automation.delegates.flashflexkit
mx.automation.events
mx.binding
mx.binding.utils
mx.charts
mx.charts.chartClasses
mx.charts.effects
mx.charts.effects.effectClasses
mx.charts.events
mx.charts.renderers
mx.charts.series
mx.charts.series.items
mx.charts.series.renderData
mx.charts.styles
mx.collections
mx.collections.errors
mx.containers
mx.containers.accordionClasses
mx.containers.dividedBoxClasses
mx.containers.errors
mx.containers.utilityClasses
mx.controls
mx.controls.advancedDataGridClasses
mx.controls.dataGridClasses
mx.controls.listClasses
mx.controls.menuClasses
mx.controls.olapDataGridClasses
mx.controls.scrollClasses
mx.controls.sliderClasses
mx.controls.textClasses
mx.controls.treeClasses
mx.controls.videoClasses
mx.core
mx.core.windowClasses
mx.data
mx.data.crypto
mx.data.errors
mx.data.events
mx.data.messages
mx.data.mxml
mx.data.offline.errors
mx.data.utils
mx.effects
mx.effects.easing
mx.effects.effectClasses
mx.events
mx.filters
mx.flash
mx.formatters
mx.geom
mx.graphics
mx.graphics.codec
mx.graphics.shaderClasses
mx.logging
mx.logging.errors
mx.logging.targets
mx.managers
mx.messaging
mx.messaging.channels
mx.messaging.config
mx.messaging.errors
mx.messaging.events
mx.messaging.management
mx.messaging.messages
mx.modules
mx.netmon
mx.olap
mx.olap.aggregators
mx.preloaders
mx.printing
mx.resources
mx.rpc
mx.rpc.events
mx.rpc.http
mx.rpc.http.mxml
mx.rpc.livecycle
mx.rpc.mxml
mx.rpc.remoting
mx.rpc.remoting.mxml
mx.rpc.soap
mx.rpc.soap.mxml
mx.rpc.wsdl
mx.rpc.xml
mx.skins
mx.skins.halo
mx.skins.spark
mx.skins.wireframe
mx.skins.wireframe.windowChrome
mx.states
mx.styles
mx.utils
mx.validators
org.osmf.containers
org.osmf.display
org.osmf.elements
org.osmf.events
org.osmf.layout
org.osmf.logging
org.osmf.media
org.osmf.metadata
org.osmf.net
org.osmf.net.dvr
org.osmf.net.httpstreaming
org.osmf.net.metrics
org.osmf.net.qos
org.osmf.net.rtmpstreaming
org.osmf.net.rules
org.osmf.traits
org.osmf.utils
spark.accessibility
spark.automation.delegates
spark.automation.delegates.components
spark.automation.delegates.components.gridClasses
spark.automation.delegates.components.mediaClasses
spark.automation.delegates.components.supportClasses
spark.automation.delegates.skins.spark
spark.automation.events
spark.collections
spark.components
spark.components.calendarClasses
spark.components.gridClasses
spark.components.mediaClasses
spark.components.supportClasses
spark.components.windowClasses
spark.core
spark.effects
spark.effects.animation
spark.effects.easing
spark.effects.interpolation
spark.effects.supportClasses
spark.events
spark.filters
spark.formatters
spark.formatters.supportClasses
spark.globalization
spark.globalization.supportClasses
spark.layouts
spark.layouts.supportClasses
spark.managers
spark.modules
spark.preloaders
spark.primitives
spark.primitives.supportClasses
spark.skins
spark.skins.mobile
spark.skins.mobile.supportClasses
spark.skins.spark
spark.skins.spark.mediaClasses.fullScreen
spark.skins.spark.mediaClasses.normal
spark.skins.spark.windowChrome
spark.skins.wireframe
spark.skins.wireframe.mediaClasses
spark.skins.wireframe.mediaClasses.fullScreen
spark.transitions
spark.utils
spark.validators
spark.validators.supportClasses
xd.core.axm.enterprise.view.components
xd.core.axm.enterprise.view.skins
xd.core.axm.view.components
xd.core.axm.view.components.support

Elementos del lenguaje

Constantes globales
Funciones globales
Operadores
Sentencias, palabras clave y directivas
Tipos especiales

Apéndices

Novedades
Errores del compilador
Advertencias del compilador
Errores en tiempo de ejecución
Migración a ActionScript 3
Conjuntos de caracteres admitidos
Solo etiquetas MXML
Elementos Motion XML
Etiquetas de texto temporizado
Lista de elementos desfasados
Constantes de implementación de accesibilidad
Cómo utilizar ejemplos de ActionScript
Avisos legales
Paqueteflash.net
Clasepublic class SharedObject
HerenciaSharedObject Inheritance EventDispatcher Inheritance Object

Versión del lenguaje: ActionScript 3.0
Versiones de motor de ejecución: AIR 1.0, Flash Player 9, Flash Lite 4

La clase SharedObject se emplea para leer y almacenar cantidades limitadas de datos en el equipo de un usuario o en un servidor. Los objetos compartidos permiten compartir datos en tiempo real entre varios archivos SWF del cliente y entre objetos persistentes del equipo local o del servidor remoto. Los objetos compartidos locales son similares a las cookies de navegador y los objetos compartidos remotos son similares a los dispositivos de transferencia de datos en tiempo real. Para utilizar objetos compartidos remotos, es necesario Adobe Flash Media Server.

Los objetos compartidos permiten realizar lo siguiente:

  • Mantener la persistencia local. Es la forma más sencilla de utilizar un objeto compartido y no requiere Flash Media Server. Por ejemplo, se puede llamar a SharedObject.getLocal() para crear un objeto compartido en una aplicación como, por ejemplo, una calculadora con memoria. Cuando el usuario cierra la calculadora, Flash Player guarda el último valor en un objeto compartido del equipo del usuario. La próxima vez que se ejecute la calculadora, contendrá los valores anteriores. Por el contrario, si establece las propiedades del objeto compartido como null antes de cerrar la aplicación de la calculadora, la próxima vez que la ejecute se abrirá sin los valores. Otro ejemplo de mantenimiento de persistencia local es realizar un seguimiento de las preferencias de los usuarios o de otros datos de un sitio web complejo, como el registro de los artículos que el usuario lee en un sitio de noticias. El registro de esta información le permitiría mostrar de forma distinta los artículos que ya ha leído y los que no ha leído. Si se almacena esta información en el equipo del usuario, se reduce la carga del servidor.
  • Almacenar y compartir datos en Flash Media Server. Un objeto compartido puede almacenar datos en el servidor para que puedan recuperarlos otros clientes. Por ejemplo, llame a SharedObject.getRemote() para crear un objeto compartido remoto, como una lista de teléfonos, que sea persistente en el servidor. Cada vez que un cliente realice cambios en el objeto compartido, los datos revisados estarán disponibles para todos los clientes conectados en ese momento al objeto o que lo harán más tarde. Si el objeto también es persistente localmente, y un cliente modifica los datos mientras no está conectado al servidor, los datos se copian en el objeto compartido remoto la próxima vez que el cliente se conecte al objeto.
  • Compartir datos en tiempo real. Un objeto compartido puede compartir datos con varios clientes en tiempo real. Por ejemplo, se puede abrir un objeto compartido remoto que almacene una lista de los usuarios conectados a una sala de chat que esté visible para todos los clientes conectados al objeto. Cuando el usuario entra o sale de la sala de chat, el objeto se actualiza y todos los clientes conectados a él podrán ver la lista revisada de los usuarios del chat.

Para crear un objeto compartido local, llame a SharedObject.getLocal(). Para crear un objeto compartido remoto, llame a SharedObject.getRemote().

Cuando se cierra la aplicación, a los objetos compartidos se les aplica el método flush, es decir, se graban en un disco. También se puede llamar al método flush() para grabar explícitamente datos en un disco.

Consideraciones relativas al espacio del disco local. Los objetos compartidos locales tienen limitaciones que es importante tener en cuenta durante el diseño de las aplicaciones. En ocasiones es posible que no se permita a los archivos SWF escribir objetos compartidos locales y algunas veces los datos almacenados en estos objetos pueden eliminarse sin que se sepa. Los usuarios de Flash Player pueden gestionar el espacio de disco disponible para dominios individuales o para todos los dominios. Si los usuarios reducen el espacio en disco disponible, es posible que se eliminen algunos objetos compartidos locales. Los usuarios de Flash Player tienen también controles de confidencialidad para impedir que dominios de terceros (distintos de los de la barra de direcciones del navegador) lean o escriban objetos compartidos locales. Tenga en cuenta también que en Mac OS, desde AIR 3.3, la ubicación de los objetos locales compartidos ha cambiado, por lo que si actualiza al espacio de nombres 3.3, tal vez parezca que ha perdido objetos.

Nota: los archivos SWF que se guardan y ejecutan desde un equipo local, no desde un servidor remoto, pueden escribir siempre objetos compartidos de terceros en el disco. Para más información sobre los objetos compartidos de terceros, consulte el panel Configuración global de almacenamiento de la Ayuda de Flash Player.

Es aconsejable buscar errores relacionados con la cantidad de espacio en disco y los controles de privacidad del usuario. Realice estas comprobaciones cuando llame a getLocal() y a flush():

  • SharedObject.getLocal(): Flash Player emite una excepción cuando falla la llamada a este método, por ejemplo, cuando el usuario ha desactivado objetos compartidos de terceros y el dominio del SWF no coincide con el de la barra de direcciones del navegador.
  • SharedObject.flush(): Flash Player emite una excepción cuando falla la llamada a este método. Devuelve SharedObjectFlushStatus.FLUSHED si se realiza correctamente. Devuelve SharedObjectFlushStatus.PENDING si se necesita espacio adicional de almacenamiento. Flash Player pide al usuario que permita un aumento del espacio de almacenamiento para guardar la información local. A partir de ahí, se distribuye el evento netStatus con un objeto de información que indica si la alineación se ha realizado correcta o incorrectamente.

Si su SWF intenta crear o modificar objetos compartidos locales, compruebe que tiene al menos 215 píxeles de ancho y 138 píxeles de alto (las dimensiones mínimas para mostrar el cuadro de diálogo que pide a los usuarios aumentar el límite de almacenamiento de objetos compartidos locales). Si su archivo SWF es más pequeño y necesita aumentar el límite de almacenamiento, SharedObject.flush() falla, devuelve SharedObjectFlushedStatus.PENDING y distribuye el evento netStatus.

Objetos compartidos remotos. Con Flash Media Server, puede crear y utilizar objetos compartidos remotos, que se comparten en tiempo real por todos los clientes conectados a la aplicación. Cuando un cliente cambia una propiedad de un objeto compartido remoto, la propiedad cambia para todos los clientes conectados. Los objetos compartidos remotos se pueden utilizar para sincronizar los clientes, por ejemplo, los usuarios de una partida entre varios jugadores.

Cada objeto remoto compartido tiene una propiedad data que es un objeto con propiedades que almacenan datos. Llame a setProperty() para cambiar una propiedad del objeto de datos. El servidor actualiza las propiedades, distribuye un evento sync y envía las propiedades de vuelta a los clientes conectados.

Puede elegir entre convertir los objetos compartidos remotos en persistentes en el cliente, en el servidor o en ambos. De forma predeterminada, Flash Player guarda localmente los objetos compartidos remotos persistentes hasta un tamaño de 100 K. Si intenta guardar un objeto de mayor tamaño, Flash Player muestra el cuadro de diálogo Almacenamiento local, que permite al usuario permitir o denegar el almacenamiento local para el objeto compartido. Asegúrese de que el tamaño del escenario sea de al menos 215 x 138 píxeles; éste es el tamaño mínimo que exige Flash para mostrar el cuadro de diálogo.

Si el usuario selecciona Permitir, el servidor guarda el objeto compartido y muestra un evento netStatus con una propiedad code de SharedObject.Flush.Success. Si el usuario selecciona Denegar, el servidor no guarda el objeto compartido y distribuye un evento netStatus con una propiedad code de SharedObject.Flush.Failed.

Ver los ejemplos

Elementos de API relacionados



Propiedades públicas
 PropiedadDefinido por
  client : Object
Indica el objeto en el que se invocan los métodos callback.
SharedObject
 Inheritedconstructor : Object
Una referencia a la clase de objeto o función constructora para una instancia de objeto determinada.
Object
  data : Object
[solo lectura] Conjunto de atributos asignados a la propiedad data del objeto; estos atributos pueden compartirse y almacenarse.
SharedObject
  defaultObjectEncoding : uint
[estática] La codificación predeterminada del objeto (versión de AMF) para todos los objetos compartidos locales creados en el archivo SWF.
SharedObject
  fps : Number
[solo escritura] Especifica el número de veces por segundo que se envían al servidor los cambios realizados por el cliente en un objeto compartido.
SharedObject
  objectEncoding : uint
La codificación del objeto (versión del AMF) para este objeto compartido.
SharedObject
      preventBackup : Boolean
[estática] Especifica si se deben crear copias de seguridad de objetos compartidos locales en el servicio de copia de seguridad en la nube de iOS.
SharedObject
  size : uint
[solo lectura] El tamaño actual del objeto compartido, expresado en bytes.
SharedObject
Métodos públicos
 MétodoDefinido por
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Registra un objeto de detector de eventos con un objeto EventDispatcher, de modo que el detector reciba la notificación de un evento.
EventDispatcher
  
En el caso de objetos compartidos locales, se purgan todos los datos y se elimina el objeto compartido del disco.
SharedObject
  
Cierra la conexión entre un objeto compartido remoto y el servidor.
SharedObject
  
connect(myConnection:NetConnection, params:String = null):void
Conecta a un objeto compartido remoto en un servidor a través de un objeto NetConnection especificado.
SharedObject
 Inherited
Distribuye un evento en el flujo del evento.
EventDispatcher
  
flush(minDiskSpace:int = 0):String
Graba inmediatamente un objeto compartido persistente localmente en un archivo local.
SharedObject
  
getLocal(name:String, localPath:String = null, secure:Boolean = false):SharedObject
[estática] Devuelve una referencia a un objeto compartido persistente localmente que sólo está disponible para el cliente actual.
SharedObject
  
getRemote(name:String, remotePath:String = null, persistence:Object = false, secure:Boolean = false):SharedObject
[estática] Devuelve una referencia a un objeto compartido en Flash Media Server al que pueden acceder varios clientes.
SharedObject
 Inherited
Comprueba si el objeto EventDispatcher tiene detectores registrados para un tipo concreto de evento.
EventDispatcher
 Inherited
Indica si un objeto tiene definida una propiedad especificada.
Object
 Inherited
Indica si hay una instancia de la clase Object en la cadena de prototipo del objeto especificado como parámetro.
Object
 Inherited
Indica si existe la propiedad especificada y si es enumerable.
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
Elimina un detector del objeto EventDispatcher.
EventDispatcher
  
send(... arguments):void
Difunde un mensaje a todos los clientes conectados a un objeto compartido remoto, incluido el cliente que envía el mensaje.
SharedObject
  
setDirty(propertyName:String):void
Indica al servidor que ha cambiado el valor de una propiedad en el objeto compartido.
SharedObject
  
setProperty(propertyName:String, value:Object = null):void
Actualiza el valor de una propiedad de un objeto compartido e indica al servidor que el valor de la propiedad ha cambiado.
SharedObject
 Inherited
Establece la disponibilidad de una propiedad dinámica para operaciones de bucle.
Object
 Inherited
Devuelve la representación de cadena de este objeto, con formato según las convenciones específicas de configuración regional.
Object
 Inherited
Devuelve la representación de cadena del objeto especificado.
Object
 Inherited
Devuelve el valor simple del objeto especificado.
Object
 Inherited
Comprueba si hay registrado un detector de eventos con este objeto EventDispatcher o con cualquiera de sus ascendientes para el tipo de evento concreto.
EventDispatcher
Eventos
 Evento Resumen Definido por
 Inherited[evento broadcast] Se distribuye cuando Flash Player o AIR pasan a estar activos.EventDispatcher
  Se distribuye cuando se emite una excepción de forma asíncrona, es decir, desde un código asíncrono nativo.SharedObject
 Inherited[evento broadcast] Se distribuye cuando Flash Player o de AIR pasan a estar inactivos.EventDispatcher
  Se distribuye cuando una instancia de SharedObject informa sobre su estado o situación de error.SharedObject
  Se distribuye cuando se ha actualizado un objeto compartido remoto en el servidor.SharedObject
Información sobre propiedades

client

propiedad
client:Object

Versión del lenguaje: ActionScript 3.0
Versiones de motor de ejecución: AIR 1.0, Flash Player 9, Flash Lite 4

Indica el objeto en el que se invocan los métodos callback. El objeto predeterminado es this. Se puede establecer la propiedad del cliente en otro objeto y los métodos callback se invocarán en dicho objeto.



Implementación
    public function get client():Object
    public function set client(value:Object):void

Emite
TypeError — La propiedad client debe establecerse en un objeto que no tenga valor null.

data

propiedad 
data:Object  [solo lectura]

Versión del lenguaje: ActionScript 3.0
Versiones de motor de ejecución: AIR 1.0, Flash Player 9, Flash Lite 4

Conjunto de atributos asignados a la propiedad data del objeto; estos atributos pueden compartirse y almacenarse. Cada atributo puede ser un objeto de cualquier tipo de ActionScript o JavaScript (Array, Number, Boolean, ByteArray, XML, etc.). Por ejemplo, las siguientes líneas asignan valores a diversos aspectos de un objeto compartido:

     var items_array:Array = new Array(101, 346, 483);
     var currentUserIsAdmin:Boolean = true;
     var currentUserName:String = "Ramona";
     
     var my_so:SharedObject = SharedObject.getLocal("superfoo");
     my_so.data.itemNumbers = items_array;
     my_so.data.adminPrivileges = currentUserIsAdmin;
     my_so.data.userName = currentUserName;
     
     for (var prop in my_so.data) {
       trace(prop+": "+my_so.data[prop]);
     }
     

Todos los atributos de la propiedad data de un objeto compartido se guardan si el objeto es persistente, y el objeto compartido contiene la siguiente información:

     userName: Ramona
     adminPrivileges: true
     itemNumbers: 101,346,483
     

Nota: no asigne valores directamente a la propiedad data de un objeto compartido, como en so.data = someValue; Flash no tiene en cuenta estas asignaciones.

Para eliminar atributos de objetos locales compartidos, utilice código como, por ejemplo, delete so.data.attributeName; la configuración de un atributo con el valor null o undefined para un objeto local compartido no elimina el atributo en cuestión.

Para crear valores private para un objeto compartido (los valores que sólo están disponibles para la instancia de cliente mientras el objeto se está utilizando no se almacenan con el objeto cuando se cierra), cree propiedades que no sean data con nombre para almacenarlos, como se muestra en el siguiente ejemplo:

     var my_so:SharedObject = SharedObject.getLocal("superfoo");
     my_so.favoriteColor = "blue";
     my_so.favoriteNightClub = "The Bluenote Tavern";
     my_so.favoriteSong = "My World is Blue";
     
     for (var prop in my_so) {
       trace(prop+": "+my_so[prop]);
     }
     

El objeto compartido contiene los siguientes datos:

     favoriteSong: My World is Blue
     favoriteNightClub: The Bluenote Tavern
     favoriteColor: blue
     data: [object Object]
     

En los objetos compartidos remotos utilizados con un servidor, todos los atributos de la propiedad data están disponibles para todos los clientes conectados al objeto compartido y, si el objeto es persistente, se guardan todos los atributos. Si un cliente cambia el valor de un atributo, todos los clientes ven ahora el nuevo valor.



Implementación
    public function get data():Object

Elementos de API relacionados

defaultObjectEncoding

propiedad 
defaultObjectEncoding:uint

Versión del lenguaje: ActionScript 3.0
Versiones de motor de ejecución: AIR 1.0, Flash Player 9, Flash Lite 4

La codificación predeterminada del objeto (versión de AMF) para todos los objetos compartidos locales creados en el archivo SWF. Cuando se escriben los objetos compartidos locales en el disco, la propiedad SharedObject.defaultObjectEncoding indica qué versión de formato de mensaje de acción se debe utilizar: el formato ActionScript 3.0 (AMF3) o el formato ActionScript 1.0 ó 2.0 (AMF0).

Para más información sobre la codificación de objetos, incluida la diferencia entre la codificación de objetos compartidos locales y remotos, consulte la descripción de la propiedad objectEncoding.

El valor predeterminado de SharedObject.defaultObjectEncoding se establece para utilizar el formato ActionScript 3.0, AMF3. Si necesita escribir objetos compartidos locales legibles para archivos SWF de ActionScript 2.0 ó 1.0, establezca SharedObject.defaultObjectEncoding para que utilice el formato ActionScript 1.0 ó ActionScript 2.0, flash.net.ObjectEncoding.AMF0, al principio del script, antes de crear ningún objeto compartido local. Todos los objetos compartidos locales creados a partir de ese momento utilizarán la codificación AMF0 y podrán interactuar con el contenido más antiguo. No es posible cambiar el valor objectEncoding de los objetos compartidos locales existentes estableciendo SharedObject.defaultObjectEncoding tras crear los objetos compartidos locales.

Para establecer la codificación del objeto de uno en uno, y no para todos los objetos compartidos creados por el archivo SWF, establezca la propiedad objectEncoding del objeto compartido local.



Implementación
    public static function get defaultObjectEncoding():uint
    public static function set defaultObjectEncoding(value:uint):void

Elementos de API relacionados

fps

propiedad 
fps:Number  [solo escritura]

Versión del lenguaje: ActionScript 3.0
Versiones de motor de ejecución: AIR 1.0, Flash Player 9, Flash Lite 4

Especifica el número de veces por segundo que se envían al servidor los cambios realizados por el cliente en un objeto compartido.

Utilice este método cuando quiera controlar la cantidad de tráfico entre el cliente y el servidor. Por ejemplo, si la conexión entre el cliente y el servidor es relativamente lenta, fps se puede establecer en un valor relativamente bajo. Por el contrario, si el cliente está conectado a una aplicación multiusuario en la que el tiempo juega un papel importante, fps se puede establecer en un valor relativamente alto.

Al definir fps se activa un evento sync y se actualizan todos los cambios en el servidor. Si sólo quiere actualizar el servidor manualmente, defina fps como 0.

Los cambios se envían al servidor sólo cuando se ha distribuido el evento sync. Esto quiere decir que, si el tiempo de respuesta del servidor es lento, las actualizaciones se enviarán al servidor con menor frecuencia que el valor especificado en esta propiedad.



Implementación
    public function set fps(value:Number):void

objectEncoding

propiedad 
objectEncoding:uint

Versión del lenguaje: ActionScript 3.0
Versiones de motor de ejecución: AIR 1.0, Flash Player 9, Flash Lite 4

La codificación del objeto (versión del AMF) para este objeto compartido. Cuando se escribe un objetos compartido local en el disco, la propiedad objectEncoding indica qué versión de formato de mensaje de acción se debe utilizar: el formato ActionScript 3.0 (AMF3) o el formato ActionScript 1.0 ó 2.0 (AMF0).

La codificación de objetos no se trata del mismo modo si el objeto compartido es local o remoto.

  • Objetos compartidos locales. Se puede obtener o establecer el valor de la propiedad objectEncoding para objetos compartidos locales. El valor de objectEncoding afecta al formato que se utiliza para escribir este archivo compartido local. Si necesita que el objeto compartido local sea legible en archivos SWF de ActionScript 2.0 ó 1.0, defina objectEncoding como ObjectEncoding.AMF0. Aunque la codificación de un objeto se establezca para escribir en AMF3, Flash Player sigue pudiendo leer objetos compartidos locales AMF0. Esto quiere decir que, si utiliza el valor predeterminado de esta propiedad, ObjectEncoding.AMF3, el archivo SWF podrá seguir leyendo objetos compartidos creados por archivos SWF de ActionScript 2.0 ó 1.0.
  • Objetos compartidos remotos. Si está conectado al servidor, un objeto compartido remoto hereda los parámetros de objectEncoding de la instancia de NetConnection asociada (la instancia que se utiliza para conectar con el objeto compartido remoto). Si no está conectado al servidor, el objeto compartido remoto hereda los parámetros de defaultObjectEncoding de la instancia de NetConnection asociada. Dado que el valor de la propiedad objectEncoding de un objeto compartido remoto viene determinada por la instancia de NetConnection, esta propiedad es de sólo lectura para los objetos compartidos remotos.



Implementación
    public function get objectEncoding():uint
    public function set objectEncoding(value:uint):void

Emite
ReferenceError — Ha intentado establecer el valor de la propiedad objectEncoding en un objeto compartido remoto. Esta propiedad es de sólo lectura para los objetos compartidos remotos, ya que su valor viene determinado por la instancia de NetConnection asociada.

Elementos de API relacionados

    

preventBackup

propiedad 
preventBackup:Boolean

Versión del lenguaje: ActionScript 3.0
Versiones de motor de ejecución: AIR 3.7

Especifica si se deben crear copias de seguridad de objetos compartidos locales en el servicio de copia de seguridad en la nube de iOS.

Especifique true o false:

  • true: impide la creación de copias de seguridad de objetos compartidos locales en el servicio de copia de seguridad en la nube de iOS.
  • false (valor predeterminado): se crearán copias de seguridad de objetos compartidos locales en el servicio de copia de seguridad en la nube de iOS.

Esta propiedad solo se aplica a objetos compartidos locales y es únicamente para iOS.



Implementación
    public static function get preventBackup():Boolean
    public static function set preventBackup(value:Boolean):void

size

propiedad 
size:uint  [solo lectura]

Versión del lenguaje: ActionScript 3.0
Versiones de motor de ejecución: AIR 1.0, Flash Player 9, Flash Lite 4

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

Flash calcula el tamaño de un objeto compartido comprobando todas sus propiedades de datos; cuantas más propiedades de datos tenga el objeto, mayor será el tiempo necesario para estimar su tamaño. La estimación del tamaño de un objeto puede consumir bastante tiempo de proceso, por lo que es posible que prefiera evitar este método si no lo necesita por un motivo concreto.



Implementación
    public function get size():uint

Ejemplo  ( Cómo utilizar este ejemplo )
El siguiente código crea un objeto SharedObject con un ID "thehobbit". Se añade una propiedad llamada username a la propiedad de los datos del objeto SharedObject. Posteriormente, se realiza un seguimiento de la propiedad size, que devuelve el valor indicado.
import flash.net.SharedObject;

// if these get copied or not
var mySo:SharedObject = SharedObject.getLocal("thehobbit");
mySo.data.username = "bilbobaggins";
trace(mySo.size); // 55
Información sobre métodos

clear

()método
public function clear():void

Versión del lenguaje: ActionScript 3.0
Versiones de motor de ejecución: AIR 1.0, Flash Player 9, Flash Lite 4

En el caso de objetos compartidos locales, se purgan todos los datos y se elimina el objeto compartido del disco. La referencia al objeto compartido sigue activa, pero las propiedades de sus datos se eliminan.

En el caso de objetos compartidos remotos utilizados con Flash Media Server, clear() desconecta el objeto y purga todos los datos. Si el objeto compartido es persistente localmente, este método también lo elimina del disco. La referencia al objeto compartido sigue activa, pero las propiedades de sus datos se eliminan.


Ejemplo  ( Cómo utilizar este ejemplo )

El siguiente código crea (y, en posteriores ejecuciones, también recupera) un objeto compartido SharedObject con un ID con el valor de hostName. Se añade una propiedad llamada username a la propiedad de los datos del objeto SharedObject. Finalmente se llama al método clear(), que limpia toda la información añadida al objeto de datos (en este caso, una única propiedad llamada username).
package {
    import flash.net.SharedObject;

    public class SharedObject_clear {
        private var hostName:String = "yourDomain";
        private var username:String = "yourUsername";

        public function SharedObject_clear() {
            var mySo:SharedObject = SharedObject.getLocal(hostName);
            if(mySo.data.username == null) {
                mySo.data.username = username;
                trace("set: " + mySo.data.username); // yourUsername
            }
            else {
                mySo.clear();
                trace("cleared: " + mySo.data.username); // undefined
            }
        }
    }
}

close

()método 
public function close():void

Versión del lenguaje: ActionScript 3.0
Versiones de motor de ejecución: AIR 1.0, Flash Player 9, Flash Lite 4

Cierra la conexión entre un objeto compartido remoto y el servidor. Si el objeto compartido remoto es persistente de forma local, el usuario puede realizar cambios en la copia local del objeto tras haber llamado a este método. Todos los cambios realizados en el objeto local se enviarán al servidor la próxima vez que el usuario se conecte al objeto compartido remoto.

connect

()método 
public function connect(myConnection:NetConnection, params:String = null):void

Versión del lenguaje: ActionScript 3.0
Versiones de motor de ejecución: AIR 1.0, Flash Player 9, Flash Lite 4

Conecta a un objeto compartido remoto en un servidor a través de un objeto NetConnection especificado. Utilice este método después de llamar a getRemote(). Si la conexión se realiza con éxito, se distribuye el evento sync.

Antes de intentar trabajar con un objeto compartido remoto, compruebe primero si hay errores utilizando una sentencia try..catch..finally. A continuación, detecte y gestione el evento sync antes de realizar modificaciones en el objeto compartido. Todos los cambios realizados localmente, antes de distribuir el evento sync, podrían perderse.

Llame al método connect() para conectarse a un objeto compartido remoto, por ejemplo:

     var myRemoteSO:SharedObject = SharedObject.getRemote("mo", myNC.uri, false);
     myRemoteSO.connect(myNC);
     

Parámetros

myConnection:NetConnection — Objeto NetConnection que utiliza el protocolo de mensajería en tiempo real (RTMP), como un objeto NetConnection utilizado para comunicarse con Flash Media Server.
 
params:String (default = null) — Cadena que define un mensaje que se transferirá al objeto compartido remoto en el servidor. No se puede utilizar con Flash Media Server.


Emite
Error — Flash Player no ha podido conectarse con el objeto compartido remoto especificado. Compruebe que la instancia de NetConnection es válida y que está conectada. También que el objeto compartido remoto se ha creado correctamente en el servidor.

Elementos de API relacionados

flush

()método 
public function flush(minDiskSpace:int = 0):String

Versión del lenguaje: ActionScript 3.0
Versiones de motor de ejecución: AIR 1.0, Flash Player 9, Flash Lite 4

Graba inmediatamente un objeto compartido persistente localmente en un archivo local. Si no utiliza este método, Flash Player grabará el objeto compartido en un archivo cuando termine la sesión del objeto; es decir, cuando se cierre el archivo SWF, cuando se eliminen los datos innecesarios del objeto compartido porque ya no tiene ninguna referencia a él o cuando llame a SharedObject.clear() o SharedObject.close().

Si este método devuelve SharedObjectFlushStatus.PENDING, Flash Player mostrará un cuadro de diálogo en el que se pedirá al usuario que aumente el espacio en disco disponible para objetos de este dominio. Para permitir que crezca el espacio asignado al objeto compartido cuando vuelva a guardarse, lo que evita que se devuelva el valor PENDING, pase un valor para minDiskSpace. Cuando Flash Player intenta grabar el archivo, busca el número de bytes pasados a minDiskSpace, en lugar de buscar el espacio suficiente para guardar el objeto compartido con su tamaño actual.

Por ejemplo, si espera que un objeto compartido crezca hasta un tamaño máximo de 500 bytes, aunque es posible que su tamaño inicial sea muy inferior a éste, pase el valor 500 para minDiskSpace. Si Flash pide al usuario que asigne espacio del disco al objeto compartido, pide 500 bytes. Una vez que el usuario asigne la cantidad de espacio solicitada, Flash no tendrá que solicitar más espacio en posteriores intentos de almacenamiento del objeto (siempre y cuando su tamaño no supere 500 bytes).

Una vez que el usuario responde al cuadro de diálogo, se vuelve a llamar a este método. Se distribuye un evento netStatus con una propiedad code de SharedObject.Flush.Success o SharedObject.Flush.Failed.

Parámetros

minDiskSpace:int (default = 0) — Espacio mínimo en disco, expresado en bytes, que debe reservarse para este objeto.

Valor devuelto
String — Los posibles valores son:
  • SharedObjectFlushStatus.PENDING: el usuario ha permitido el almacenamiento de información local para objetos de este dominio, pero la cantidad de espacio asignada es insuficiente para almacenar el objeto. Flash Player pide al usuario que cree más espacio. Para permitir espacio de modo que aumente cuando se guarde el objeto compartido, y evitar así un valor de devolución SharedObjectFlushStatus.PENDING, transfiera un valor para minDiskSpace.
  • SharedObjectFlushStatus.FLUSHED: el objeto compartido se ha escrito correctamente en un archivo del disco local.

Emite
Error — Flash Player no puede escribir el objeto compartido en el disco. Es posible que se produzca este error si el usuario ha denegado permanentemente el almacenamiento de información local para los objetos de este dominio.

Nota: el contenido local siempre puede escribir en el disco objetos compartidos de dominios de terceros (distintos del que aparece en la barra de direcciones actual del navegador), aunque no esté admitida dicha operación.

Elementos de API relacionados


Ejemplo  ( Cómo utilizar este ejemplo )

El siguiente código crea (y, en posteriores ejecuciones, también recupera) un objeto compartido SharedObject con un ID con el valor de hostName. Se añade una propiedad llamada username a la propiedad de los datos del objeto SharedObject. Se llama al método flush() y se comprueba para ver si devuelve pending o un valor booleano true o false. Se debe tener en cuenta que todas las instancias de SharedObject abiertas se alinearán automáticamente cuando se cierre la instancia de Flash Player.
package {
    import flash.net.SharedObject;

    public class SharedObject_flush {
        private var hostName:String = "yourDomain";
        private var username:String = "yourUsername";

        public function SharedObject_flush() {
            var mySo:SharedObject = SharedObject.getLocal(hostName);
            mySo.data.username = username;
            var flushResult:Object = mySo.flush();
            trace("flushResult: " + flushResult);
            trace(mySo.data.username); // yourUsername
        }
    }
}

getLocal

()método 
public static function getLocal(name:String, localPath:String = null, secure:Boolean = false):SharedObject

Versión del lenguaje: ActionScript 3.0
Versiones de motor de ejecución: AIR 1.0, Flash Player 9, Flash Lite 4

Devuelve una referencia a un objeto compartido persistente localmente que sólo está disponible para el cliente actual. Si el objeto compartido no existe ya, este método crea uno. Si alguno de los valores transferidos a getLocal() no son válidos o si la llamada produce un error, Flash Player emitirá una excepción.

El siguiente código muestra cómo asignar la referencia del objeto compartido devuelto a una variable:

var so:SharedObject = SharedObject.getLocal("savedData");

Nota: si el usuario ha optado por no permitir nunca el almacenamiento local para este dominio, el objeto no se guardará localmente aunque se especifique un valor para localPath. La excepción a esta regla es el contenido local. El contenido local siempre puede escribir en el disco objetos compartidos de dominios de terceros (distintos del que aparece en la barra de direcciones actual del navegador), aunque no esté admitida dicha operación.

Para evitar conflictos de nombres, Flash examina la ubicación del archivo SWF que está creando el objeto compartido. Por ejemplo, si un archivo SWF ubicado en www.myCompany.com/apps/stockwatcher.swf crea un objeto compartido denominado portfolio, el objeto compartido no entra en conflicto con otro objeto portfolio creado por un archivo SWF en www.yourCompany.com/photoshoot.swf porque los archivos SWF se originan en directorios distintos.

Aunque el parámetro localPath es opcional, debe considerar su utilización, particularmente si otros archivos SWF van a necesitar acceder al objeto compartido. Si los datos del objeto compartido son específicos de un archivo SWF que no se trasladará a otra ubicación, lo más recomendable será utilizar el valor predeterminado. Si otros archivos SWF necesitan acceder al objeto compartido o si el archivo SWF que crea el objeto compartido se va a trasladar posteriormente, el valor de este parámetro puede afectar al acceso al objeto compartido. Por ejemplo, si crea un objeto compartido con localPath configurado con el valor predeterminado de ruta completa del archivo SWF, ningún otro archivo SWF podrá acceder a dicho objeto compartido. Si posteriormente traslada el archivo SWF original a otra ubicación, ni tan siquiera dicho archivo SWF podrá acceder a los datos ya almacenados en el objeto compartido.

Para evitar las restricciones involuntarias de acceso al objeto compartido, utilice el parámetro localpath. El enfoque más permisivo consiste en establecer localPath en / (barra), lo que pone el objeto compartido a disposición de todos los archivos SWF del dominio pero aumenta la probabilidad de que se produzcan conflictos de nombres con otros objetos compartidos del dominio. Un enfoque más restrictivo es añadir localPath a los nombres de carpetas que se encuentren en la ruta completa del archivo SWF. Por ejemplo, para un objeto compartido portfolio creado por el archivo SWF en www.myCompany.com/apps/stockwatcher.swf, se establecería el parámetro localPath como /, /apps o /apps/stockwatcher.swf. Deberá determinar qué enfoque ofrece máxima flexibilidad para su aplicación.

Cuando utilice este método, puede ser conveniente usar el modelo de seguridad siguiente:

  • No puede acceder a objetos compartidos de otros entornos limitados.
  • Los usuarios pueden limitar el acceso a objetos compartidos utilizando el cuadro de diálogo Configuración de Flash Player o el Administrador de configuración. De forma predeterminada, una aplicación puede crear objetos compartidos con un máximo de 100 KB de datos por cada dominio. Los administradores y los usuarios también pueden limitar la capacidad de escribir en el sistema de archivos.

Supongamos que se publica el contenido de un archivo SWF para reproducirlo como archivo local (archivos SWF o EXE instalados localmente) y necesitamos acceder a un objeto compartido concreto desde más de uno de los archivos SWF locales. En esta situación, se debe tener en cuenta que se pueden utilizar dos ubicaciones distintas en los archivos locales para almacenar objetos compartidos. El dominio utilizado depende de los permisos de seguridad concedidos al archivo local que creó el objeto compartido. Los archivos locales pueden tener tres niveles de permisos diferentes:

  1. Acceso sólo al sistema de archivos local.
  2. Acceso sólo a la red.
  3. Acceso a la red y al sistema de archivos local.

Los archivos locales con acceso al sistema de archivos local (nivel 1 ó 3) almacenan sus objetos compartidos en una ubicación. Los archivos locales sin acceso al sistema de archivos local (nivel 2) almacenan sus objetos compartidos en otra ubicación.

Asimismo, se puede impedir que un archivo SWF utilice este método si define el parámetro allowNetworking de las etiquetas object y embed de la página HTML que aloja el contenido SWF.

Para obtener más información, consulte el tema del Centro de desarrollo de Flash Player Seguridad.

Parámetros

name:String — El nombre del objeto. El nombre puede incluir barras diagonales (/); por ejemplo, work/addresses es un nombre válido. No se admiten espacios en los nombres de objetos compartidos, ni tampoco los siguientes caracteres:
  ~ % & \ ; : " ' , < > ? # 
  
 
localPath:String (default = null) — La ruta completa o parcial del archivo SWF que creó el objeto compartido y que determina si éste se almacenará localmente. Si no especifica este parámetro, se utilizará la ruta completa.
 
secure:Boolean (default = false) — Determina si el acceso a este objeto compartido se limita a archivos SWF enviados a través de una conexión HTTPS. Si el archivo SWF se envía mediante HTTPS, el valor de este parámetro tendrá los efectos siguientes:
  • Si este parámetro es true, Flash Player crea un nuevo objeto compartido seguro u obtiene una referencia a un objeto compartido seguro existente. Sólo pueden leer o escribir en este objeto compartido seguro archivos SWF enviados a través de HTTPS que llamen a SharedObject.getLocal() con el parámetro secure definido como true.
  • Si el parámetro se establece como false, Flash Player crea un nuevo objeto compartido o bien obtiene una referencia a un objeto compartido existente que pueda leer y escribir con archivos SWF enviados mediante conexiones que no son HTTPS.

Si su archivo SWF se ha enviado a través de una conexión no HTTPS e intenta definir este parámetro como true, fallará la creación de un nuevo objeto compartido (o el acceso a un objeto compartido seguro creado anteriormente) y el valor devuelto será null. Independientemente del valor de este parámetro, los objetos compartidos creados aumentan el espacio en disco total permitido en el dominio.

El siguiente diagrama muestra el uso del parámetro secure:

diagrama del objeto secure compartido

Valor devuelto
SharedObject — Una referencia a un objeto compartido persistente localmente que sólo está disponible para el cliente actual. Si Flash Player no puede crear ni encontrar el objeto compartido (por ejemplo, si se especificó localPath pero no existe ningún directorio con ese nombre), este método emitirá una excepción.

Emite
Error — Flash Player no puede crear el objeto compartido sin razón aparente. Este error puede producirse si se ha prohibido a contenido de Flash de terceros la creación y el almacenamiento de objetos compartidos persistentes (excepto en el caso de contenido local). Los usuarios pueden prohibir los objetos compartidos persistentes de terceros en el panel Configuración global de almacenamiento del Administrador de configuración, situado en http://www.adobe.com/support/documentation/es/flashplayer/help/settings_manager03.html.

getRemote

()método 
public static function getRemote(name:String, remotePath:String = null, persistence:Object = false, secure:Boolean = false):SharedObject

Versión del lenguaje: ActionScript 3.0
Versiones de motor de ejecución: AIR 1.0, Flash Player 9, Flash Lite 4

Devuelve una referencia a un objeto compartido en Flash Media Server al que pueden acceder varios clientes. Si el objeto compartido remoto no existe aún, este método crea uno.

Para crear un objeto compartido remoto, llame a getRemote(), la llamada connect() permite conectar el objeto compartido remoto al servidor, como se muestra a continuación:

     var nc:NetConnection = new NetConnection();
     nc.connect("rtmp://somedomain.com/applicationName");
     var myRemoteSO:SharedObject = SharedObject.getRemote("mo", nc.uri, false);
     myRemoteSO.connect(nc);
     

Para confirmar que las copias local y remota del objeto compartido están sincronizadas, utilice y gestione el evento sync Todos los clientes que quieran compartir este objeto deben transferir los mismos valores para los parámetros name y remotePath.

Para crear un objeto compartido disponible sólo para el cliente actual, utilice SharedObject.getLocal().

Parámetros

name:String — El nombre del objeto compartido remoto. El nombre puede incluir barras diagonales (/); por ejemplo, work/addresses es un nombre válido. No se admiten espacios en los nombres de objetos compartidos, ni tampoco los siguientes caracteres:
    ~ % & \ ; :  " ' , > ? ? #
 
remotePath:String (default = null) — URI del servidor en el que se almacenará el objeto compartido. Este URI debe ser idéntico al URI del objeto NetConnection transferido al método connect().
 
persistence:Object (default = false) — Especifica si los atributos de la propiedad de los datos del objeto compartido son persistentes de forma local, remota o ambas. Este parámetro también puede especificar la ubicación en la que se almacenará localmente el objeto compartido. Los valores aceptables son los siguientes:
  • Un valor false especifica que el objeto compartido no es persistente en el cliente o en el servidor.
  • Un valor true especifica que el objeto compartido es persistente sólo en el servidor.
  • Una ruta local completa o parcial del objeto compartido indica que éste es persistente en el cliente y en el servidor. En el cliente, se almacena en la ruta especificada; en el servidor, se almacena en un subdirectorio dentro del directorio de la aplicación.

Nota: si el usuario ha optado por no permitir nunca el almacenamiento local para este dominio, el objeto no se guardará localmente aunque se especifique una ruta local para la persistencia. Para más información, consulte la descripción de la clase.

 
secure:Boolean (default = false) — Determina si el acceso a este objeto compartido se limita a archivos SWF enviados a través de una conexión HTTPS. Para más información, consulte la descripción del parámetro secure en la entrada del método getLocal.

Valor devuelto
SharedObject — Una referencia a un objeto que se puede compartir con varios clientes.

Emite
Error — Flash Player no puede crear ni encontrar el objeto compartido. Esto puede ocurrir si se especifican rutas inexistentes para los parámetros remotePath y persistence.

Elementos de API relacionados

send

()método 
public function send(... arguments):void

Versión del lenguaje: ActionScript 3.0
Versiones de motor de ejecución: AIR 1.0, Flash Player 9, Flash Lite 4

Difunde un mensaje a todos los clientes conectados a un objeto compartido remoto, incluido el cliente que envía el mensaje. Para procesar y responder al mensaje, cree una función callback conectada al objeto compartido.

Parámetros

... arguments — Uno o varios argumentos: una cadena que identifica el mensaje, el nombre de una o varias funciones del controlador que se asocian al objeto compartido y parámetros opcionales de cualquier tipo. El nombre del controlador sólo puede tener un nivel de profundidad (es decir, no puede tener el formato principal/secundario) y es relativo al objeto compartido. Los argumentos se serializan y se envían a través de la conexión y el controlador receptor los recibe en el mismo orden. Si un parámetro es un objeto circular (por ejemplo, una lista vinculada circular), el serializador controla las referencias correctamente.

Nota: no utilice ningún término reservado al elegir los nombres de las funciones. Por ejemplo, myRemoteSO.send("close") generaría un error.

setDirty

()método 
public function setDirty(propertyName:String):void

Versión del lenguaje: ActionScript 3.0
Versiones de motor de ejecución: AIR 1.0, Flash Player 9, Flash Lite 4

Indica al servidor que ha cambiado el valor de una propiedad en el objeto compartido. Este método marca las propiedades como dirty, lo que indica que ha cambiado.

Llame a SharedObject.setProperty() para crear propiedades para un objeto compartido.

El método SharedObject.setProperty() implementa setDirty(). En la mayoría de los casos (por ejemplo, cuando el valor de una propiedad es un tipo simple como String o Number), se puede llamar a setProperty() en lugar de setDirty(). Sin embargo, cuando el valor de una propiedad es un objeto que contiene sus propias propiedades, llame a setDirty() para indicar cuándo ha cambiado un valor del objeto.

Parámetros

propertyName:String — El nombre de la propiedad que ha cambiado.

Elementos de API relacionados

setProperty

()método 
public function setProperty(propertyName:String, value:Object = null):void

Versión del lenguaje: ActionScript 3.0
Versiones de motor de ejecución: AIR 1.0, Flash Player 9, Flash Lite 4

Actualiza el valor de una propiedad de un objeto compartido e indica al servidor que el valor de la propiedad ha cambiado. El método setProperty() marca explícitamente las propiedades como modificadas o no definitivas (dirty).

Para obtener información adicional sobre los objetos compartidos remotos, consulte la documentación de Flash Media Server.

Nota: el método SharedObject.setProperty() implementa el método setDirty(). En la mayoría de los casos (por ejemplo, cuando el valor de una propiedad es un tipo simple como String o Number), se utiliza setProperty() en lugar de setDirty. Sin embargo, cuando el valor de una propiedad es un objeto que contiene sus propias propiedades, se utiliza setDirty() para indicar cuándo ha cambiado el valor del objeto. En general, es aconsejable llamar a setProperty() y no a setDirty(), ya que setProperty() actualiza los valores de la propiedad solamente cuando éstos cambian, mientras que setDirty() obliga a sincronizar en todos los clientes suscritos.

Parámetros

propertyName:String — El nombre de la propiedad del objeto compartido.
 
value:Object (default = null) — El valor de la propiedad (un objeto ActionScript), o bien el valor null para eliminar la propiedad.

Elementos de API relacionados

Información sobre eventos

asyncError

Evento
Tipo de objeto de evento: flash.events.AsyncErrorEvent
propiedad AsyncErrorEvent.type = flash.events.AsyncErrorEvent.ASYNC_ERROR

Versión del lenguaje: ActionScript 3.0
Versiones de motor de ejecución: AIR 1.0, Flash Player 9, Flash Lite 4

Se distribuye cuando se emite una excepción de forma asíncrona, es decir, desde un código asíncrono nativo.

La constante AsyncErrorEvent.ASYNC_ERROR define el valor de la propiedad type de un objeto de evento asyncError.

Este evento tiene las propiedades siguientes:

PropiedadValor
bubblesfalse
cancelablefalse; no hay ningún comportamiento predeterminado que cancelar.
currentTargetObjeto que procesa de forma activa el objeto de evento con un detector de eventos.
targetObjeto que distribuye el evento.
errorEl error que desencadenó el evento.

netStatus

Evento  
Tipo de objeto de evento: flash.events.NetStatusEvent
propiedad NetStatusEvent.type = flash.events.NetStatusEvent.NET_STATUS

Versión del lenguaje: ActionScript 3.0
Versiones de motor de ejecución: AIR 1.0, Flash Player 9, Flash Lite 4

Se distribuye cuando una instancia de SharedObject informa sobre su estado o situación de error. El evento netStatus contiene una propiedad info, que es un objeto de información que contiene información específica sobre el evento, por ejemplo, si el intento de conexión se realizó correctamente o si falló, o si se ha conseguido escribir el objeto compartido en el disco local.

Define el valor de la propiedad type de un objeto de evento netStatus.

Este evento tiene las propiedades siguientes:

PropiedadValor
bubblesfalse
cancelablefalse; no hay ningún comportamiento predeterminado que cancelar.
currentTargetObjeto que procesa de forma activa el objeto de evento con un detector de eventos.
infoUn objeto con propiedades que describen el estado del objeto o la situación de error.
targetEl objeto NetConnection o NetStream que informa sobre su estado.

Elementos de API relacionados

sync

Evento  
Tipo de objeto de evento: flash.events.SyncEvent
propiedad SyncEvent.type = flash.events.SyncEvent.SYNC

Versión del lenguaje: ActionScript 3.0
Versiones de motor de ejecución: AIR 1.0, Flash Player 9, Flash Lite 4

Se distribuye cuando se ha actualizado un objeto compartido remoto en el servidor.

Define el valor de la propiedad type de un objeto de evento sync.

Este evento tiene las propiedades siguientes:

PropiedadValor
bubblesfalse
cancelablefalse; no hay ningún comportamiento predeterminado que cancelar.
currentTargetObjeto que procesa de forma activa el objeto de evento con un detector de eventos.
changeListConjunto con propiedades que describen el estado de la misma.
targetLa instancia de SharedObject actualizada por el servidor.

Elementos de API relacionados

SharedObjectExample.as

El siguiente código crea (y, en posteriores ejecuciones, también recupera) un objeto compartido con el ID "application-name". Al hacer clic en el botón Guardar, el método saveValue() intenta guardar una propiedad llamada savedValue en la propiedad data del objeto SharedObject. Si Flash Player debe pedir permiso para guardar los datos, cuando el usuario lo otorgue o lo deniegue, se llamará al método onFlushStatus(). Si se hace clic en el botón Borrar, el método clearValue() eliminará el valor guardado en savedValue; la próxima vez que se cargue el archivo SWF, el valor recuperado será undefined.
package {
    import flash.display.Sprite;
    import flash.events.MouseEvent;
    import flash.events.NetStatusEvent;
    import flash.net.SharedObject;
    import flash.net.SharedObjectFlushStatus;
    import flash.text.TextField;
    import flash.text.TextFieldAutoSize;
    import flash.text.TextFieldType;
    
    public class SharedObjectExample extends Sprite {
        
        private var mySo:SharedObject;
        
        public function SharedObjectExample() {
            buildUI();
            saveBtn.addEventListener(MouseEvent.CLICK, saveValue);
            clearBtn.addEventListener(MouseEvent.CLICK, clearValue);
            
            mySo = SharedObject.getLocal("application-name");
            output.appendText("SharedObject loaded...\n");
            output.appendText("loaded value: " + mySo.data.savedValue + "\n\n");
        }

         private function saveValue(event:MouseEvent):void {
            output.appendText("saving value...\n");
            mySo.data.savedValue = input.text;
            
            var flushStatus:String = null;
            try {
                flushStatus = mySo.flush(10000);
            } catch (error:Error) {
                output.appendText("Error...Could not write SharedObject to disk\n");
            }
            if (flushStatus != null) {
                switch (flushStatus) {
                    case SharedObjectFlushStatus.PENDING:
                        output.appendText("Requesting permission to save object...\n");
                        mySo.addEventListener(NetStatusEvent.NET_STATUS, onFlushStatus);
                        break;
                    case SharedObjectFlushStatus.FLUSHED:
                        output.appendText("Value flushed to disk.\n");
                        break;
                }
            }
            output.appendText("\n");
        }
        
        private function clearValue(event:MouseEvent):void {
            output.appendText("Cleared saved value...Reload SWF and the value should be \"undefined\".\n\n");
            delete mySo.data.savedValue;
        }
        
        private function onFlushStatus(event:NetStatusEvent):void {
            output.appendText("User closed permission dialog...\n");
            switch (event.info.code) {
                case "SharedObject.Flush.Success":
                    output.appendText("User granted permission -- value saved.\n");
                    break;
                case "SharedObject.Flush.Failed":
                    output.appendText("User denied permission -- value not saved.\n");
                    break;
            }
            output.appendText("\n");

            mySo.removeEventListener(NetStatusEvent.NET_STATUS, onFlushStatus);
        }
        
        // UI elements
        private var inputLbl:TextField;
        private var input:TextField;
        private var output:TextField;
        private var saveBtn:Sprite;
        private var clearBtn:Sprite;
    
        private function buildUI():void {
            // input label
            inputLbl = new TextField();
            addChild(inputLbl);
            inputLbl.x = 10;
            inputLbl.y = 10;
            inputLbl.text = "Value to save:";
            
            // input TextField
            input = new TextField();
            addChild(input);
            input.x = 80;
            input.y = 10;
            input.width = 100;
            input.height = 20;
            input.border = true;
            input.background = true;
            input.type = TextFieldType.INPUT;
            
            // output TextField
            output = new TextField();
            addChild(output);
            output.x = 10;
            output.y = 35;
            output.width = 250;
            output.height = 250;
            output.multiline = true;
            output.wordWrap = true;
            output.border = true;
            output.background = true;
            
            // Save button
            saveBtn = new Sprite();
            addChild(saveBtn);
            saveBtn.x = 190;
            saveBtn.y = 10;
            saveBtn.useHandCursor = true;
            saveBtn.graphics.lineStyle(1);
            saveBtn.graphics.beginFill(0xcccccc);
            saveBtn.graphics.drawRoundRect(0, 0, 30, 20, 5, 5);
            var saveLbl:TextField = new TextField();
            saveBtn.addChild(saveLbl);
            saveLbl.text = "Save";
            saveLbl.selectable = false;
            
            // Clear button
            clearBtn = new Sprite();
            addChild(clearBtn);
            clearBtn.x = 230;
            clearBtn.y = 10;
            clearBtn.useHandCursor = true;
            clearBtn.graphics.lineStyle(1);
            clearBtn.graphics.beginFill(0xcccccc);
            clearBtn.graphics.drawRoundRect(0, 0, 30, 20, 5, 5);
            var clearLbl:TextField = new TextField();
            clearBtn.addChild(clearLbl);
            clearLbl.text = "Clear";
            clearLbl.selectable = false;
        }
    }
}




[ X ]¿Por qué hay texto en inglés?
Cierto contenido de la Referencia de ActionScript 3.0 se muestra en inglés

No todo el contenido de la Referencia de ActionScript 3.0 se traduce a todos los idiomas. Si un elemento del lenguaje no se traduce, aparecerá en inglés. Por ejemplo, la clase ga.controls.HelpBox no está traducida en ningún idioma. Por lo tanto, en la versión en español de la referencia, la clase ga.controls.HelpBox aparecerá en inglés.