Guide de référence ActionScript® 3.0 pour la plate-forme Adobe® Flash®
Accueil  |  Masquer la liste des packages et des classes |  Packages  |  Classes  |  Nouveautés  |  Index  |  Annexes  |  Pourquoi existe-t-il du contenu en anglais ?
Filtres : AIR 30.0 et versions antérieures, Flash Player 30.0 et versions antérieures, Flash Lite 4
Flex 4.6 et versions antérieures, Flash Pro CS6 et versions antérieures
Masquer les filtres
flash.net 

SharedObject  - AS3

Packagesx

Niveau supérieur
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

Eléments du langage

Constantes globales
Fonctions globales
Opérateurs
Instructions, mots clés et directives
Types spéciaux

Annexes

Nouveautés
Erreurs de compilation
Avertissements du compilateur
Erreurs d’exécution
Migration vers ActionScript 3
Jeux de caractères pris en charge
Balises MXML uniquement
Eléments XML de mouvement
Balises Timed Text
Liste des éléments déconseillés
Constantes d’implémentation d’accessibilité
Utilisation des exemples de code ActionScript
Informations juridiques
Packageflash.net
Classepublic class SharedObject
HéritageSharedObject Inheritance EventDispatcher Inheritance Object

Version du langage: ActionScript 3.0
Versions du moteur d’exécution: AIR 1.0, Flash Player 9, Flash Lite 4

La classe SharedObject est utilisée pour lire et stocker des quantités limitées de données sur l’ordinateur d’un utilisateur ou sur un serveur. Les objets partagés permettent le partage en temps réel de plusieurs fichiers et objets SWF clients qui sont stockés en permanence sur l’ordinateur local ou sur un serveur distant. Les objets partagés locaux sont identiques aux cookies des navigateurs et les objets partagés distants sont identiques aux périphériques de transfert de données en temps réel. Pour utiliser des objets partagés distants, vous avez besoin d’Adobe Flash Media Server.

Utilisez des objets partagés lorsque vous devez :

  • Conserver la persistance locale. Il s’agit de la méthode la plus simple pour utiliser un objet partagé. Elle ne requiert pas Flash Media Server. Par exemple, vous pouvez appeler SharedObject.getLocal() pour créer un objet partagé dans une application, par exemple une calculatrice avec mémoire. Lorsque l’utilisateur ferme la calculatrice, Flash Player enregistre la dernière valeur dans un objet partagé dans l’ordinateur de l’utilisateur. Lors de sa prochaine exécution, la calculatrice contiendra la valeur précédente. En revanche, si vous réglez les propriétés de l’objet partagé sur null avant la fermeture de la calculatrice, lors de sa prochaine exécution, elle ne contiendra aucune valeur. Un autre exemple de conservation de la persistance locale consiste à assurer le suivi des préférences utilisateur ou d’autres données pour un site Web complexe, tel que l’enregistrement des articles lus par un utilisateur dans un site d’actualités. Le suivi de ces informations vous permet de différencier l’affichage des articles déjà lus de ceux qui sont nouveaux ou non lus. Le stockage de ces informations dans l’ordinateur de l’utilisateur réduit la charge du serveur.
  • Stockage et partage des données sur Flash Media Server. Un objet partagé peut stocker des données sur le serveur pour que d’autres clients les y récupèrent. Par exemple, appelez SharedObject.getRemote() pour créer un objet partagé distant, tel qu’une liste téléphonique, persistant sur le serveur. Chaque fois qu’un client modifie l’objet partagé, les données modifiées sont mises à la disposition de tous les clients actuellement connectés à l’objet ou qui s’y connectent ultérieurement. Si l’objet est également persistant localement et qu’un client change ses données alors qu’il n’est pas connecté au serveur, les données sont copiées dans l’objet partagé distant dès que le client se connecte à cet objet.
  • Partage des données en temps réel. Un objet partagé peut partager des données en temps réel entre plusieurs clients. Vous pouvez, par exemple, ouvrir un objet partagé distant qui stocke la liste des utilisateurs connectés à une salle de conversation accessible à tous les clients connectés à l’objet. Lorsqu’un utilisateur entre dans la salle de conversation ou en sort, l’objet est mis à jour et la liste révisée des utilisateurs de la salle est visible par tous les clients connectés à l’objet.

Pour créer un objet partagé local, appelez SharedObject.getLocal(). Pour créer un objet partagé distant, appelez SharedObject.getRemote().

A la fermeture d’une application, les objets partagés sont purgés ou écrits sur un disque. Vous pouvez également appeler la méthode flush() pour écrire explicitement les données sur un disque.

Eléments importants relatifs à l’espace disque local. Les objets partagés locaux possèdent certaines restrictions dont vous devez absloment tenir compte lors de la conception de votre application. Certains fichiers SWF ne sont pas autorisés à écrire des objets partagés locaux et certaines données stockées dans des objets partagés locaux sont parfois supprimées à votre insu. Les utilisateurs de Flash Player peuvent gérer l’espace disque disponible pour des domaines spécifiques ou l’ensemble des domaines. Lorsque des utilisateurs réduisent la quantité d’espace disque disponible, certains objets locaux partagés risquent d’être supprimés. Les utilisateurs de Flash Player disposent également de contrôles de confidentialité qui peuvent empêcher les domaines tiers (autres que celui figurant dans la barre d’adresse du navigateur) de lire ou d’écrire des objets partagés locaux. Notez également que sous Mac OS, à partir d’AIR 3.3, l’emplacement des objets partagés localement a changé ; par conséquent, si vous effectuez une mise à niveau vers l’espace de noms 3.3, vous pouvez penser que les objets ont été perdus.

Remarque : les fichiers SWF stockés et exécutés sur un ordinateur local, et non à partir d’un serveur distant, peuvent toujours écrire des objets partagés par un tiers sur un disque. Pour plus d’informations sur les objets partagés par un tiers, voir Panneau Paramètres globaux d’enregistrement dans l’aide de Flash Player.

Il est toujours conseillé de vérifier les défaillances relatives à la quantité d’espace disque et au contrôle de la confidentialité des utilisateurs. Effectuez ces vérifications lorsque vous appelez getLocal() et flush() :

  • SharedObject.getLocal() — Flash Player renvoie une exception lors de l’échec d’un appel de cette méthode, par exemple lorsque l’utilisateur a désactivé les objets partagés par un tiers et que le domaine de votre fichier SWF ne correspond pas à celui de la barre d’adresse du navigateur.
  • SharedObject.flush() — Flash Player renvoie une exception lors de l’échec d’un appel de cette méthode. Il renvoie SharedObjectFlushStatus.FLUSHED lorsque l’appel aboutit. Il renvoie SharedObjectFlushStatus.PENDING lorsque de l’espace disque supplémentaire est nécessaire. Flash Player invite l’utilisateur à allouer plus d’espace disque aux informations enregistrées localement. Par la suite, l’événement netStatus est distribué avec un objet d’informations indiquant si la purge a abouti ou échoué.

Si votre fichier SWF tente de créer ou modifier des objets partagés locaux, assurez-vous que le fichier SWF fait au moins 215 pixels de large et 138 pixels de haut (ce qui constitue les dimensions minimales d’affichage de la boîte de dialogue qui suggère à l’utilisateur d’augmenter sa limite locale de stockage des objets partagés locaux). Si votre fichier SWF est inférieur à ces dimensions et si une augmentation de la limite de stockage est nécessaire, SharedObject.flush() échoue, renvoie SharedObjectFlushedStatus.PENDING et distribue l’événement netStatus.

Objets partagés distants. Flash Media Server vous permet de créer et d’utiliser des objets partagés distants, partagés en temps réel par tous les clients connectés à votre application. Lorsqu’un client modifie une propriété d’un objet partagé distant, cette propriété est modifiée pour tous les clients connectés. Vous pouvez utiliser des objets partagés distants pour synchroniser des clients, par exemple les utilisateurs d’un jeu multi-joueurs.

Chaque objet partagé distant possède une propriété data correspondant à un Objet avec propriétés qui stocke des données. Appelez setProperty() pour modifier une propriété de l’objet de données. Le serveur met à jour les propriétés, envoie un événement sync, puis renvoie les propriétés aux clients connectés.

Vous pouvez choisir de rendre les objets partagés distants persistant sur le client, sur le serveur ou sur les deux. Par défaut, Flash Player enregistre localement les objets partagés distants persistants dont la taille est inférieure à 100 Ko. Lorsque vous tentez d’enregistrer un objet plus volumineux, Flash Player ouvre une boite de dialogue de stockage local qui permet à l’utilisateur d’autoriser ou d’interdire le stockage local de l’objet partagé. Assurez-vous que la taille de votre scène est d’au moins 215 x 138 pixels ; il s’agit de la taille minimale requise par Flash pour afficher cette boîte de dialogue.

Si l’utilisateur sélectionne Autoriser, le serveur enregistre l’objet partagé et distribue un événement netStatus avec la propriété code SharedObject.Flush.Success. Si l’utilisateur sélectionne Refuser, le serveur enregistre l’objet partagé et distribue un événement netStatus avec la propriété code SharedObject.Flush.Failed.

Consulter les exemples

Eléments de l’API associés



Propriétés publiques
 PropriétéDéfini par
  client : Object
Indique l’objet sur lequel des méthodes de rappel sont appelées.
SharedObject
 Inheritedconstructor : Object
Référence à l’objet de classe ou à la fonction constructeur d’une occurrence donnée d’un objet.
Object
  data : Object
[lecture seule] Ensemble des attributs affectés à la propriété data de l’objet. Ces attributs peuvent être partagés et stockés.
SharedObject
  defaultObjectEncoding : uint
[statique] Encodage d’objet par défaut (version AMF) de tous les objets partagés locaux créés dans le fichier SWF.
SharedObject
  fps : Number
[écriture seule] Indique la fréquence, en secondes, d’envoi au serveur des modifications apportées à un client.
SharedObject
  objectEncoding : uint
Encodage d’objet (version AMF) de cet objet partagé.
SharedObject
      preventBackup : Boolean
[statique] Indique si les objets partagés locaux seront sauvegardés par le service de sauvegarde dans le cloud d’iOS.
SharedObject
  size : uint
[lecture seule] Taille actuelle de l’objet partagé, en octets.
SharedObject
Méthodes publiques
 MéthodeDéfini par
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Enregistre un objet écouteur d’événement auprès d’un objet EventDispatcher afin que l’écouteur soit averti d’un événement.
EventDispatcher
  
Dans le cas d’un objet partagé local, cette méthode purge toutes les données et supprime l’objet du disque.
SharedObject
  
Ferme la connexion entre un objet partagé distant et le serveur.
SharedObject
  
connect(myConnection:NetConnection, params:String = null):void
Se connecte à un objet partagé distant sur un serveur par l’intermédiaire d’un objet NetConnection spécifié.
SharedObject
 Inherited
Distribue un événement dans le flux d’événements.
EventDispatcher
  
flush(minDiskSpace:int = 0):String
Ecrit immédiatement un objet partagé persistant localement dans un fichier local.
SharedObject
  
getLocal(name:String, localPath:String = null, secure:Boolean = false):SharedObject
[statique] Renvoie une référence à un objet partagé persistant localement qui est disponible uniquement pour le client actuel.
SharedObject
  
getRemote(name:String, remotePath:String = null, persistence:Object = false, secure:Boolean = false):SharedObject
[statique] Renvoie une référence à un objet partagé sur Flash Media Server auquel plusieurs clients peuvent accéder.
SharedObject
 Inherited
Vérifie si des écouteurs sont enregistrés auprès de l’objet EventDispatcher pour un type spécifique d’événement.
EventDispatcher
 Inherited
Indique si la propriété spécifiée d’un objet est définie.
Object
 Inherited
Indique si une occurrence de la classe Object figure dans la chaîne de prototype de l’objet spécifié en tant que paramètre.
Object
 Inherited
Indique si la propriété spécifiée existe et est énumérable.
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
Supprime un écouteur de l’objet EventDispatcher.
EventDispatcher
  
send(... arguments):void
Diffuse un message à tous les clients connectés à l’objet partagé distant, y compris au client qui a envoyé le message.
SharedObject
  
setDirty(propertyName:String):void
Indique au serveur que la valeur d’une propriété a changé dans l’objet partagé.
SharedObject
  
setProperty(propertyName:String, value:Object = null):void
Met à jour la valeur d’une propriété dans un objet partagé et indique cette modification au serveur.
SharedObject
 Inherited
Définit la disponibilité d’une propriété dynamique pour les opérations en boucle.
Object
 Inherited
Renvoie la représentation de chaîne de cet objet, formatée selon les paramètres régionaux en vigueur.
Object
 Inherited
Renvoie la représentation sous forme de chaîne de l’objet spécifié.
Object
 Inherited
Renvoie la valeur primitive de l’objet spécifié.
Object
 Inherited
Vérifie si un écouteur d’événement est enregistré auprès de cet objet EventDispatcher ou de ses ancêtres pour le type d’événement spécifié.
EventDispatcher
Evénements
 Evénement Synthèse Défini par
 Inherited[Evénement de diffusion] Distribué lorsque l’application Flash Player obtient le focus du système d’exploitation et devient active.EventDispatcher
  Distribué lorsqu’une erreur est renvoyée de manière asynchrone ; autrement dit, lorsqu’elle provient du code asynchrone natif.SharedObject
 Inherited[Evénement de diffusion] Distribué lorsque l’application Flash Player ou AIR perd le focus du système d’exploitation et devient inactive.EventDispatcher
  Distribué lorsqu’une occurrence de SharedObject publie son état ou signale une erreur.SharedObject
  Distribué lorsqu’un objet partagé distant a été mis à jour par le serveur.SharedObject
Détails de la propriété

client

propriété
client:Object

Version du langage: ActionScript 3.0
Versions du moteur d’exécution: AIR 1.0, Flash Player 9, Flash Lite 4

Indique l’objet sur lequel des méthodes de rappel sont appelées. L’objet par défaut est this. Si vous réglez la propriété client sur un autre objet, les méthodes de rappels sont appelées sur celui-ci.



Implémentation
    public function get client():Object
    public function set client(value:Object):void

Valeur émise
TypeError — La propriété client ne peut pas être réglée sur l’objet null.

data

propriété 
data:Object  [lecture seule]

Version du langage: ActionScript 3.0
Versions du moteur d’exécution: AIR 1.0, Flash Player 9, Flash Lite 4

Ensemble des attributs affectés à la propriété data de l’objet. Ces attributs peuvent être partagés et stockés. Chaque attribut peut être un objet d’un quelconque type ActionScript ou JavaScript : tableau, nombre, valeur booléenne, ByteArray, XML, etc. Par exemple, les lignes suivantes affectent des valeurs à différents aspects d’un objet partagé :

     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]);
     }
     

Tous les attributs de la propriété data d’un objet partagé sont enregistrés si l’objet est persistant, et l’objet partagé contient les informations suivantes :

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

Remarque : n’affectez pas directement de valeurs à la propriété data d’un objet partagé, tel que dans so.data = someValue car Flash Player ignore ces affectations.

Pour supprimer des attributs pour des objets partagés locaux, utilisez un code tel que delete so.data.attributeName. La définition d’un attribut sur null ou undefined pour un objet partagé local ne supprime pas l’attribut.

Pour créer des valeurs privées pour un objet partagé, valeurs qui ne sont disponibles que pour l’occurrence du client alors que l’objet est utilisé et qui ne sont pas enregistrées avec l’objet lorsqu’il est fermé, créez des propriétés qui ne sont pas nommées data pour les enregistrer, comme l’illustre l’exemple suivant :

     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]);
     }
     

L’objet partagé contient les données suivantes :

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

Dans le cas d’objets partagés distants utilisés avec un serveur, tous les attributs de la propriété data sont accessibles à tous les clients connectés à l’objet partagé, et tous les attributs sont enregistrés si l’objet est persistant. Lorsqu’un client modifie la valeur d’un attribut, tous les clients voient ensuite la nouvelle valeur.



Implémentation
    public function get data():Object

Eléments de l’API associés

defaultObjectEncoding

propriété 
defaultObjectEncoding:uint

Version du langage: ActionScript 3.0
Versions du moteur d’exécution: AIR 1.0, Flash Player 9, Flash Lite 4

Encodage d’objet par défaut (version AMF) de tous les objets partagés locaux créés dans le fichier SWF. Lorsque les objets partagés locaux sont écrits sur le disque, la propriété SharedObject.defaultObjectEncoding indique la version AMF (Action Message Format) devant être utilisée : format ActionScript 3.0 (AMF3) ou format ActionScript 1.0 ou 2.0 (AMF0).

Pour plus d’informations sur l’encodage des objets, y compris sur les différences d’encodage des objets partagés selon qu’ils sont locaux ou distants, voir la description de la propriété objectEncoding.

La valeur par défaut de SharedObject.defaultObjectEncoding stipule l’utilisation du format ActionScript 3.0 (AMF3). Pour écrire des objets partagés locaux qui doivent être lus par des fichiers SWF ActionScript 2.0 ou 1.0, réglez SharedObject.defaultObjectEncoding sur flash.net.ObjectEncoding.AMF0 afin qu’elle utilise le format ActionScript 1.0 ou ActionScript 2.0, au début de votre script, avant de créer les objets. Tous les objets partagés locaux créés ultérieurement utiliseront l’encodage AMF0 et pourront interagir avec du contenu plus ancien. Après la création des objets partagés locaux, il est impossible de modifier leur valeur objectEncoding correspondante en définissant SharedObject.defaultObjectEncoding.

Pour configurer l’encodage objet par objet, plutôt que pour la totalité des objets partagés créés par le fichier SWF, définissez la propriété objectEncoding de l’objet concerné.



Implémentation
    public static function get defaultObjectEncoding():uint
    public static function set defaultObjectEncoding(value:uint):void

Eléments de l’API associés

fps

propriété 
fps:Number  [écriture seule]

Version du langage: ActionScript 3.0
Versions du moteur d’exécution: AIR 1.0, Flash Player 9, Flash Lite 4

Indique la fréquence, en secondes, d’envoi au serveur des modifications apportées à un client.

Cette méthode vous permet de contrôler le trafic entre le client et le serveur. Si la connexion entre le client et le serveur est relativement lente, par exemple, réglez fps sur une valeur peu élevée. Inversement, si le client est connecté à une application multi-utilisateurs et que la vitesse des échanges est primordiale, réglez fps sur une valeur relativement élevée.

La définition de fps déclenchera un événement sync et actualisera toutes les modifications sur le serveur. Pour actualiser le serveur manuellement, définissez fps sur 0.

Les modifications ne sont envoyées au serveur qu’après la diffusion de l’événement sync. En d’autres termes, si le serveur réagit lentement, l’envoi des mises à jour risque d’être moins fréquent que ne le spécifie la valeur de cette propriété.



Implémentation
    public function set fps(value:Number):void

objectEncoding

propriété 
objectEncoding:uint

Version du langage: ActionScript 3.0
Versions du moteur d’exécution: AIR 1.0, Flash Player 9, Flash Lite 4

Encodage d’objet (version AMF) de cet objet partagé. Lors de l’écriture d’un objet partagé local sur le disque, la propriété objectEncoding indique la version AMF (Action Message Format) devant être utilisée : format ActionScript 3.0 (AMF3) ou format ActionScript 1.0 ou 2.0 (AMF0).

L’encodage d’objet est géré différemment selon que l’objet partagé est local ou distant.

  • Objets partagés locaux. Vous pouvez extraire ou définir la valeur de la propriété objectEncoding des objets partagés locaux. La valeur de la propriété objectEncoding a une incidence sur le formatage utilisé pour écrire l’objet local partagé. Si l’objet local partagé doit pouvoir être lu par des fichiers SWF ActionScript 2.0 ou 1.0, réglez objectEncoding sur ObjectEncoding.AMF0. Flash Player peut lire les objets partagés locaux AMF0 même si l’encodage d’objet écrit au format AMF3. En d’autres termes, si vous utilisez la valeur par défaut de cette propriété, ObjectEncoding.AMF3, votre fichier SWF peut néanmoins lire les objets partagés créés par les fichiers ActionScript 2.0 ou 1.0.
  • Objets partagés distants. Lorsqu’il est connecté au serveur, un objet partagé distant hérite de son paramètre objectEncoding de l’occurrence de NetConnection associée (utilisée pour la connexion à l’objet partagé distant). Lorsqu’il n’est pas connecté au serveur, un objet partagé distant hérite du paramètre defaultObjectEncoding de l’occurrence de NetConnection associée. Comme la valeur de la propriété objectEncoding de l’objet partagé distant est déterminée par l’occurrence de NetConnection, cette propriété est en lecture seule pour les objets partagés distants.



Implémentation
    public function get objectEncoding():uint
    public function set objectEncoding(value:uint):void

Valeur émise
ReferenceError — Vous avez tenté de définir la valeur de la propriété objectEncoding pour un objet partagé distant. Cette propriété est en lecture seule pour les objets partagés distants car sa valeur est déterminée par l’occurrence de NetConnection associée.

Eléments de l’API associés

    

preventBackup

propriété 
preventBackup:Boolean

Version du langage: ActionScript 3.0
Versions du moteur d’exécution: AIR 3.7

Indique si les objets partagés locaux seront sauvegardés par le service de sauvegarde dans le cloud d’iOS.

Indiquez la valeur true ou false :

  • true : empêche la sauvegarde des objets partagés locaux par le service de sauvegarde dans le cloud d’iOS.
  • false (par défaut) : les objets partagés locaux sont sauvegardés par le service de sauvegarde dans le cloud d’iOS.

Cette propriété ne s’applique qu’aux objets partagés locaux et ne concerne qu’iOS.



Implémentation
    public static function get preventBackup():Boolean
    public static function set preventBackup(value:Boolean):void

size

propriété 
size:uint  [lecture seule]

Version du langage: ActionScript 3.0
Versions du moteur d’exécution: AIR 1.0, Flash Player 9, Flash Lite 4

Taille actuelle de l’objet partagé, en octets.

Flash calcule la taille d’un objet partagé en examinant toutes ses propriétés data ; plus un objet a de propriétés data, plus l’estimation de sa taille prend du temps. L’estimation de la taille de l’objet peut monopoliser beaucoup de temps de traitement. Il est donc recommandé d’éviter cette méthode à moins d’en avoir réellement besoin.



Implémentation
    public function get size():uint

Plus d’exemples


Exemple  ( Comment utiliser cet exemple )
Le code suivant crée un objet SharedObject en utilisant l’ID "thehobbit". Une propriété appelée username est ajoutée à la propriété data de l’objet SharedObject. Le code assure ensuite le suivi de la propriété size, ce qui a pour effet de renvoyer la valeur indiquée.
import flash.net.SharedObject;

// if these get copied or not
var mySo:SharedObject = SharedObject.getLocal("thehobbit");
mySo.data.username = "bilbobaggins";
trace(mySo.size); // 55
Détails de la méthode

clear

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

Version du langage: ActionScript 3.0
Versions du moteur d’exécution: AIR 1.0, Flash Player 9, Flash Lite 4

Dans le cas d’un objet partagé local, cette méthode purge toutes les données et supprime l’objet du disque. La référence à l’objet partagé reste active, mais ses propriétés data sont effacées.

Pour les objets partagés distants utilisés avec Flash Media Server, clear() déconnecte l’objet et purge toutes ses données. Si l’objet partagé est persistant localement, cette méthode le supprime également du disque. La référence à l’objet partagé reste active, mais ses propriétés data sont effacées.


Exemple  ( Comment utiliser cet exemple )

Le code suivant crée (et lors des ses prochaines exécutions, récupère) un objet SharedObject en utilisant l’ID hostName. Une propriété appelée username est ajoutée à la propriété data de l’objet SharedObject. La méthode clear() qui est appelée pour finir, efface toutes les informations ajoutées à l’objet data (dans ce cas, une propriété appelée 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éthode 
public function close():void

Version du langage: ActionScript 3.0
Versions du moteur d’exécution: AIR 1.0, Flash Player 9, Flash Lite 4

Ferme la connexion entre un objet partagé distant et le serveur. Si un objet partagé distant est persistant localement, l’utilisateur peut modifier la copie locale de l’objet après l’appel de cette méthode. Toute modification apportée à l’objet local est envoyée au serveur à la prochaine connexion de l’utilisateur à l’objet partagé distant.

connect

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

Version du langage: ActionScript 3.0
Versions du moteur d’exécution: AIR 1.0, Flash Player 9, Flash Lite 4

Se connecte à un objet partagé distant sur un serveur par l’intermédiaire d’un objet NetConnection spécifié. Utilisez cette méthode après un appel à getRemote(). Lorsque la connexion est réussie, l’événement sync est distribué.

Avant de tenter d’utiliser un objet partagé distant, commencez par vérifier la présence d’erreurs éventuelles à l’aide d’une instruction try..catch..finally. Ensuite, écoutez et gérez l’événement sync avant de modifier l’objet partagé. Toute modification effectuée localement, avant la distribution de l’événement sync, peut être perdue.

Appelez la méthode connect() pour vous connecter à un objet partagé distant, par exemple :

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

Paramètres

myConnection:NetConnection — Objet NetConnection qui utilise le protocole RTMP (Real-Time Messaging Protocol), tel qu’un objet NetConnection utilisé pour communiquer avec Flash Media Server.
 
params:String (default = null) — Chaîne définissant le message à transmettre à l’objet partagé distance sur le serveur. Ne peut pas être utilisé avec Flash Media Server.


Valeur émise
Error — Flash Player n’a pas réussi à se connecter à l’objet partagé distant spécifié. Assurez-vous que l’occurrence de NetConnection est valide et connectée, et que l’objet partagé distant a été créé sur le serveur.

Eléments de l’API associés

flush

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

Version du langage: ActionScript 3.0
Versions du moteur d’exécution: AIR 1.0, Flash Player 9, Flash Lite 4

Ecrit immédiatement un objet partagé persistant localement dans un fichier local. Si vous n’utilisez pas cette méthode, Flash écrit l’objet partagé dans un fichier lorsque la session d’objet partagé se termine, c’est-à-dire lorsque le fichier SWF est fermé, lorsque l’objet partagé est effacé par l’outil de nettoyage de la mémoire car il n’est plus associé à aucune référence ou lorsque vous appelez SharedObject.clear() ou SharedObject.close().

Si cette méthode renvoie SharedObjectFlushStatus.PENDING, Flash Player ouvre une boîte de dialogue demandant à l’utilisateur d’augmenter la quantité d’espace disque disponible pour les objets de ce domaine. Pour ménager un espace permettant à la taille de l’objet partagé de croître lors d’un enregistrement ultérieur, évitant ainsi des valeurs renvoyées de PENDING, transmettez une valeur à minDiskSpace. Lorsque Flash Player tente d’écrire le fichier, il recherche le nombre d’octets transmis à minDiskSpace plutôt que l’espace nécessaire à l’enregistrement de l’objet partagé à sa taille actuelle.

Par exemple, si vous pensez qu’un objet partagé atteindra une taille maximale de 500 octets, même s’il est au départ beaucoup plus petit, transmettez 500 à minDiskSpace. Le cas échéant, Flash demandera à l’utilisateur d’affecter 500 octets d’espace disque à l’objet partagé. Une fois que l’utilisateur affecte l’espace nécessaire, Flash ne demande pas davantage d’espace lors des prochaines tentatives de purge de l’objet (tant que sa taille ne dépasse pas les 500 octets).

Une fois que l’utilisateur a répondu dans la boîte de dialogue, cette méthode est de nouveau appelée. Un événement netStatus est distribué avec une propriété code SharedObject.Flush.Success ou SharedObject.Flush.Failed.

Paramètres

minDiskSpace:int (default = 0) — Quantité minimale d’espace disque, en octets, à allouer à cet objet.

Valeur renvoyée
String — L’une des valeurs suivantes :
  • SharedObjectFlushStatus.PENDING : l’utilisateur a autorisé l’enregistrement des informations locales pour les objets de ce domaine, mais l’espace affecté est insuffisant pour enregistrer l’objet. Flash Player invite l’utilisateur à affecter davantage d’espace. Pour laisser croître l’espace de l’objet partagé lorsqu’il est enregistré, et éviter ainsi le renvoi de la valeur SharedObjectFlushStatus.PENDING, transmettez une valeur pour minDiskSpace.
  • SharedObjectFlushStatus.FLUSHED : l’objet partagé a bien été écrit dans un fichier du disque local.

Valeur émise
Error — Flash Player ne peut pas écrire l’objet partagé sur le disque. Cette erreur est susceptible de se produire si l’utilisateur a interdit définitivement le stockage des informations locales pour les objets de ce domaine.

Remarque : un contenu local peut toujours écrire sur un disque des objets partagés en provenance de domaines tiers (autres que celui de la barre d’adresse actuelle du navigateur), même s’il est interdit à un domaine tiers d’écrire des objets partagés sur un disque.

Plus d’exemples

Eléments de l’API associés


Exemple  ( Comment utiliser cet exemple )

Le code suivant crée (et lors des ses prochaines exécutions, récupère) un objet SharedObject en utilisant l’ID hostName. Une propriété appelée username est ajoutée à la propriété data de l’objet SharedObject. La méthode flush() est appelée. Une vérification détermine ensuite si la chaîne pending ou une valeur booléenne true ou false a été renvoyée. N’oubliez pas que toutes les occurrences ouvertes de SharedObject sont automatiquement purgées à la fermeture de l’occurrence actuelle 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éthode 
public static function getLocal(name:String, localPath:String = null, secure:Boolean = false):SharedObject

Version du langage: ActionScript 3.0
Versions du moteur d’exécution: AIR 1.0, Flash Player 9, Flash Lite 4

Renvoie une référence à un objet partagé persistant localement qui est disponible uniquement pour le client actuel. Si l’objet partagé n’existe pas encore, cette méthode en crée un. Si des valeurs transmises à getLocal() sont incorrectes ou si l’appel échoue, Flash Player renvoie une exception.

Le code suivant illustre la procédure d’attribution à une variable de la référence à l’objet partagé renvoyé :

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

Remarque : si l’utilisateur a choisi de ne jamais autoriser l’enregistrement local pour ce domaine, l’objet n’est pas enregistré localement, même si une valeur est spécifiée pour localPath. L’exception à cette règle est le contenu local. Un contenu local peut toujours écrire des objets partagés en provenance de domaines tiers sur un disque (domaines autres que celui de la barre d’adresse actuelle du navigateur), même s’il est interdit à un domaine tiers d’écrire des objets partagés sur un disque.

Pour éviter les conflits de noms, Flash examine l’emplacement du fichier SWF qui crée l’objet partagé. Par exemple, si un fichier SWF à l’adresse www.myCompany.com/apps/stockwatcher.swf crée un objet partagé nommé portfolio, cet objet partagé n’entre pas en conflit avec un autre objet nommé portfolio qui a été créé par un fichier SWF à l’adresse www.yourCompany.com/photoshoot.swf, étant donné que les fichiers SWF proviennent de répertoires différents.

Bien que le paramètre localPath soit facultatif, vous devez réfléchir à son utilisation, en particulier si les autres fichiers SWF doivent accéder à l’objet partagé. Si les données dans l’objet partagé sont spécifiques à un fichier SWF qui ne sera pas déplacé dans un autre emplacement, l’utilisation de la valeur par défaut prend alors tout son sens. Si d’autres fichiers SWF nécessitent un accès à l’objet partagé ou si le fichier SWF qui crée l’objet partagé est déplacé ultérieurement, la valeur de ce paramètre peut alors affecter l’accessibilité de l’objet partagé. Par exemple, si vous créez un objet partagé en réglant localPath sur la valeur par défaut du chemin complet du fichier SWF, aucun autre fichier SWF ne pourra accéder à cet objet partagé. Si vous déplacez par la suite le fichier SWF d’origine dans un autre emplacement, il ne pourra plus accéder aux données déjà enregistrées dans l’objet partagé.

Pour éviter de limiter inopinément l’accès à un objet partagé, utilisez le paramètre localpath. La meilleure option consiste à définir le paramètre localPath sur /. Cette opération rend l’objet partagé accessible à tous les fichiers SWF du domaine, mais augmente la probabilité de conflits de noms avec d’autres objets partagés dans ce domaine. Une autre option, plus restrictive, consiste à faire suivre localPath de noms de dossier figurant dans le chemin complet du fichier SWF. Prenons l’exemple de l’objet partagé portfolio créé par le fichier SWF à l’adresse www.myCompany.com/apps/stockwatcher.swf. Vous pouvez régler le paramètre localPath sur /, /apps ou /apps/stockwatcher.swf. Vous devrez identifier l’option qui offre la meilleure flexibilité à votre application.

Lorsque vous employez cette méthode, tenez compte du modèle de sécurité suivant :

  • Vous ne pouvez pas accéder à des objets partagés en franchissant les limites sandbox.
  • Les utilisateurs peuvent limiter l’accès aux objets partagés via la boîte de dialogue Paramètres de Flash Player ou via le Gestionnaire des paramètres. Par défaut, une application peut créer des objets partagés contenant jusqu’à 100 Ko de données par domaine. Les administrateurs et les utilisateurs peuvent également limiter la capacité à écrire dans le système de fichiers.

Imaginons que vous publiez le contenu de fichiers SWF afin qu’il soit lu sous forme de fichiers locaux (fichiers SWF installés localement ou fichiers EXE) et que vous deviez accéder à un objet partagé spécifique à partir de plusieurs fichiers SWF locaux. Dans ce cas, sachez que, pour ce qui est des fichiers locaux, il est possible d’utiliser deux emplacements différents pour le stockage des objets partagés. Le domaine utilisé dépend des autorisations de sécurité accordées au fichier local qui a créé l’objet partagé. Les fichiers locaux peuvent avoir trois niveaux distincts d’autorisation :

  1. Accès au système de fichiers local uniquement
  2. Accès au réseau uniquement
  3. Accès au réseau et au système de fichiers local

Les fichiers locaux pouvant accéder au système de fichiers local (niveau 1 ou 3) stockent leurs objets partagés à un emplacement unique. Les fichiers locaux ne pouvant pas accéder au système de fichiers local (niveau 2) stockent leurs objets partagés dans un autre emplacement.

Vous pouvez empêcher un fichier SWF d’utiliser cette méthode en définissant le paramètre allowNetworking des balises object et embed dans la page HTML qui comporte le contenu SWF.

Pour plus d’informations, voir la rubrique du Pôle de développement Flash Player : Sécurité (disponible en anglais uniquement).

Paramètres

name:String — Nom de l’objet. Le nom peut comporter des barres obliques (/) ; par exemple, work/addresses est un nom admissible. Les espaces ne sont pas autorisés dans un nom d’objet partagé, ainsi que les caractères suivants :
  ~ % & \ ; : " ' , < > ? # 
  
 
localPath:String (default = null) — Chemin complet ou partiel du fichier SWF qui a créé l’objet partagé, et qui détermine l’endroit où l’objet partagé sera stocké localement. Si vous omettez ce paramètre, le chemin complet est utilisé.
 
secure:Boolean (default = false) — Détermine si l’accès à cet objet partagé est limité aux fichiers SWF reçus via une connexion HTTPS. Si votre fichier SWF est reçu via HTTPS, la valeur de ce paramètre a les effets suivants :
  • Si ce paramètre est défini sur true, Flash Player crée un nouvel objet partagé sécurisé ou obtient une référence à un objet partagé sécurisé existant. Cet objet sécurisé partagé peut uniquement être lu par des fichiers SWF ou écrit dans des fichiers SWF reçus via des HTTPS appelant SharedObject.getLocal() avec le paramètre secure défini sur true.
  • Si ce paramètre est défini sur false, Flash Player crée un objet partagé ou obtient une référence à un objet partagé existant, qui peut être lu ou écrit par des fichiers SWF reçus via des connexions autres que HTTPS.

Si votre fichier SWF est reçu via une connexion autre que HTTPS et que vous tentez de définir ce paramètre sur true, la création d’un nouvel objet partagé (ou l’accès à un objet partagé sécurisé précédemment créé) échoue et null est renvoyé. Quelle que soit la valeur de ce paramètre, les objets partagés créés sont comptabilisés dans la quantité d’espace disque total autorisée pour un domaine.

Le diagramme suivant indique comment utiliser le paramètre secure :

Diagramme d’un objet partagé sécurisé

Valeur renvoyée
SharedObject — Référence à un objet partagé qui est persistant localement et disponible uniquement pour le client actuel. Si Flash Player ne peut pas créer ni localiser l’objet partagé (par exemple, si localPath a été spécifié mais que son répertoire n’existe pas), cette méthode renvoie une exception.

Valeur émise
Error — Flash Player ne peut pas créer l’objet partagé pour une raison quelconque. Cette erreur est susceptible de se produire si la création d’objets partagés persistants et le stockage de contenu Flash en provenance de tiers sont interdits (ceci ne s’applique pas au contenu local). Les utilisateurs peuvent interdire les objets partagés persistants de tiers dans le panneau Paramètres globaux d’enregistrement du Gestionnaire de paramètres, situé à l’adresse http://www.adobe.com/support/documentation/fr/flashplayer/help/settings_manager03.html.

Plus d’exemples

getRemote

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

Version du langage: ActionScript 3.0
Versions du moteur d’exécution: AIR 1.0, Flash Player 9, Flash Lite 4

Renvoie une référence à un objet partagé sur Flash Media Server auquel plusieurs clients peuvent accéder. Si l’objet partagé distant n’existe pas encore, cette méthode en crée un.

Pour créer un objet partagé distant, appelez getRemote(), puis connect() pour connecter l’objet partagé distant au serveur, comme suit :

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

Pour confirmer la synchronisation des copies locale et distante de l’objet partagé, écoutez et gérez l’événement sync. Tous les clients qui souhaitent partager cet objet doivent transmettre les mêmes valeurs pour les paramètres name et remotePath.

Pour créer un objet partagé accessible au client actuel uniquement, utilisez SharedObject.getLocal().

Paramètres

name:String — Nom de l’objet partagé distant. Le nom peut comporter des barres obliques (); par exemple, work/addresses est un nom admissible. Les espaces ne sont pas autorisés dans un nom d’objet partagé, ainsi que les caractères suivants :
    ~ % & \ ; :  " ' , > ? ? #
 
remotePath:String (default = null) — URI du serveur sur lequel sera stocké l’objet partagé. Cette URI doit être identique à celle de l’objet NetConnection transmis à la méthode connect().
 
persistence:Object (default = false) — Indique si les attributs des propriétés data de l’objet partagé sont persistants localement et/ou à distance. Ce paramètre peut également indiquer l’emplacement de stockage local de l’objet partagé. Les valeurs possibles sont les suivantes :
  • La valeur false indique que l’objet partagé n’est pas persistant dans le client ou le serveur.
  • La valeur true indique que l’objet partagé est persistant dans le serveur uniquement.
  • Un chemin d’accès local partiel ou complet à l’objet partagé indique que ce dernier est persistant dans le client et le serveur. Dans le client, il est stocké dans le chemin spécifié. Sur le serveur, il est stocké dans un sous-répertoire du répertoire de l’application.

Remarque : si l’utilisateur a choisi de ne jamais autoriser l’enregistrement local pour ce domaine, l’objet n’est pas enregistré localement, même si un chemin local est spécifié à des fins de persistance. Pour plus d’informations, voir la description de la classe.

 
secure:Boolean (default = false) — Détermine si l’accès à cet objet partagé est limité aux fichiers SWF reçus via une connexion HTTPS. Pour plus d’informations, voir la description du paramètre secure dans la section consacrée à la méthode getLocal.

Valeur renvoyée
SharedObject — Référence à un objet pouvant être partagé entre plusieurs clients.

Valeur émise
Error — Flash Player ne peut pas créer ni localiser l’objet partagé. Cette situation peut se produire si les paramètres remotePath et persistence ont été réglés sur des chemins inexistants.

Plus d’exemples

Eléments de l’API associés

send

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

Version du langage: ActionScript 3.0
Versions du moteur d’exécution: AIR 1.0, Flash Player 9, Flash Lite 4

Diffuse un message à tous les clients connectés à l’objet partagé distant, y compris au client qui a envoyé le message. Pour traiter le message et y répondre, créez une fonction de rappel associée à l’objet partagé.

Paramètres

... arguments — Un ou plusieurs arguments : chaîne identifiant le message, le nom d’une ou de plusieurs fonctions de gestionnaire à joindre à l’objet partagé et des paramètres facultatifs de tout type. Le nom du gestionnaire ne peut avoir qu’un seul niveau (autrement dit, il ne peut pas être au format parent/enfant) et est relatif à l’objet partagé. Les arguments sont sérialisés et envoyés via la connexion, et le gestionnaire de destination les reçoit dans le même ordre. Si un paramètre représente un objet circulaire (une liste liée qui est circulaire, par exemple), l’utilitaire de sérialisation gère correctement les références.

Remarque : n’utilisez pas un terme réservé comme nom de fonction. myRemoteSO.send("close"), par exemple, se soldera par un échec.

setDirty

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

Version du langage: ActionScript 3.0
Versions du moteur d’exécution: AIR 1.0, Flash Player 9, Flash Lite 4

Indique au serveur que la valeur d’une propriété a changé dans l’objet partagé. Cette méthode marque les propriétés comme dirty, ce qui signifie qu’elles ont été modifiées.

Pour créer les propriétés d’un objet partagé, appelez SharedObject.setProperty().

La méthode SharedObject.setProperty() implémente setDirty(). Dans la plupart des cas, par exemple lorsque la valeur d’une propriété est de type primitif, comme String ou Number, appelez setProperty() plutôt que setDirty(). En revanche, lorsque la valeur d’une propriété est un objet qui contient ses propres propriétés, appelez setDirty() pour indiquer la modification d’une valeur dans l’objet.

Paramètres

propertyName:String — Nom de la propriété qui a changé.

Eléments de l’API associés

setProperty

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

Version du langage: ActionScript 3.0
Versions du moteur d’exécution: AIR 1.0, Flash Player 9, Flash Lite 4

Met à jour la valeur d’une propriété dans un objet partagé et indique cette modification au serveur. La méthode setProperty() marque explicitement les propriétés comme modifiées (dirty).

Pour plus d’informations sur les objets partagés distants, voir la Documentation de Flash Media Server.

Remarque : La méthode SharedObject.setProperty() implémente la méthode setDirty(). Dans la plupart des cas, par exemple lorsque la valeur d’une propriété est de type primitif, comme String ou Number, utilisez setProperty() plutôt que setDirty(). En revanche, lorsque la valeur de la propriété est un objet qui contient ses propres propriétés, utilisez setDirty() pour indiquer la modification d’une valeur dans l’objet. De façon générale, il est conseillé d’appeler setProperty() plutôt que setDirty(), car setProperty() ne met à jour la valeur d’une propriété que lorsqu’elle a changé, tandis que setDirty() impose la synchronisation à tous les clients abonnés.

Paramètres

propertyName:String — Nom de la propriété de l’objet partagé.
 
value:Object (default = null) — Valeur de la propriété (objet ActionScript) ou null pour supprimer la propriété.

Eléments de l’API associés

Détails de l’événement

asyncError

Evénement
Type d’objet d’événement: flash.events.AsyncErrorEvent
propriété AsyncErrorEvent.type = flash.events.AsyncErrorEvent.ASYNC_ERROR

Version du langage: ActionScript 3.0
Versions du moteur d’exécution: AIR 1.0, Flash Player 9, Flash Lite 4

Distribué lorsqu’une erreur est renvoyée de manière asynchrone ; autrement dit, lorsqu’elle provient du code asynchrone natif.

La constante AsyncErrorEvent.ASYNC_ERROR définit la valeur de la propriété type d’un objet événement asyncError.

Les propriétés de cet événement sont les suivantes :

PropriétéValeur
bubblesfalse
cancelablefalse ; il n’existe aucun comportement par défaut à annuler.
currentTargetL’objet qui traite activement l’objet Event avec un écouteur d’événements.
targetL’objet distribuant l’événement.
errorErreur qui a déclenché l’événement.

netStatus

Evénement  
Type d’objet d’événement: flash.events.NetStatusEvent
propriété NetStatusEvent.type = flash.events.NetStatusEvent.NET_STATUS

Version du langage: ActionScript 3.0
Versions du moteur d’exécution: AIR 1.0, Flash Player 9, Flash Lite 4

Distribué lorsqu’une occurrence de SharedObject publie son état ou signale une erreur. L’événement netStatus renferme une propriété info, composée d’un objet d’informations contenant des renseignements spécifiques sur l’événement, telles que la réussite ou l’échec d’une tentative de connexion ou la réussite de l’écriture de l’objet partagé dans le disque dur local.

Définit la valeur de la propriété type d’un objet d’événement netStatus.

Les propriétés de cet événement sont les suivantes :

PropriétéValeur
bubblesfalse
cancelablefalse ; il n’existe aucun comportement par défaut à annuler.
currentTargetL’objet qui traite activement l’objet Event avec un écouteur d’événements.
infoObjet associé à des propriétés décrivant son état ou indiquant une erreur.
targetObjet NetConnection ou NetStream publiant son état.

Eléments de l’API associés

sync

Evénement  
Type d’objet d’événement: flash.events.SyncEvent
propriété SyncEvent.type = flash.events.SyncEvent.SYNC

Version du langage: ActionScript 3.0
Versions du moteur d’exécution: AIR 1.0, Flash Player 9, Flash Lite 4

Distribué lorsqu’un objet partagé distant a été mis à jour par le serveur.

Définit la valeur de la propriété type d’un objet événement sync.

Les propriétés de cet événement sont les suivantes :

PropriétéValeur
bubblesfalse
cancelablefalse ; il n’existe aucun comportement par défaut à annuler.
currentTargetL’objet qui traite activement l’objet Event avec un écouteur d’événements.
changeListTableau associé à des propriétés décrivant son état.
targetoccurrence SharedObject qui a été mise à jour par le serveur.

Eléments de l’API associés

SharedObjectExample.as

Le code suivant crée (et lors des ses prochaines exécutions, récupère) un objet partagé en utilisant l’ID "application-name". Lorsqu’un utilisateur clique sur le bouton Enregistrer, la méthode saveValue() tente d’enregistrer une propriété appelée savedValue dans la propriété data de l’objet SharedObject. Si Flash Player doit demander l’autorisation d’enregistrer les données, la méthodeonFlushStatus() est appelée lorsque l’utilisateur accorde ou refuse l’opération. Lorsqu’un utilisateur clique sur le bouton Effacer, la méthode clearValue() efface la valeur enregistrée dans savedValue. Au prochain chargement du fichier SWF, la valeurundefined est récupérée.
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 ]Pourquoi existe-t-il du contenu en anglais ?
Certaines parties du Guide de référence ActionScript 3.0 sont en anglais

Tout le contenu du Guide de référence ActionScript 3.0 n’a pas été traduit dans toutes les langues. Si un élément de langage n’est pas traduit, il s’affiche en anglais. Par exemple, la classe ga.controls.HelpBox n’est traduite dans aucune langue. Ainsi, dans la version française du guide de référence, la classe ga.controls.HelpBox apparaît en anglais.