ActionScript® 3.0 — dokumentacja dla platformy Adobe® Flash®
Strona główna  |  Ukryj listę pakietów i klas |  Pakiety  |  Klasy  |  Nowości  |  Indeks  |  Dodatki  |  Dlaczego język angielski?
Filtry: AIR 30.0 i wcześniejsze, Flash Player 30.0 i wcześniejsze, Flash Lite 4
Flex 4.6 i wcześniejsze, Flash Pro CS6 i wcześniejsze
Ukryj filtry
flash.net 

SharedObject  - AS3

Pakietyx

Najwyższy poziom
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

Elementy językowe

Stałe globalne
Funkcje globalne
Operatory
Instrukcje, słowa kluczowe i dyrektywy
Typy specjalne

Dodatki

Nowości
Błędy kompilatora
Ostrzeżenia kompilatora
Błędy czasu wykonywania
Migracja kodu ActionScript 3
Obsługiwane zestawy znaków
Tylko MXML
Elementy XML dotyczące ruchu
Znaczniki tekstu z synchronizacją czasową
Przestarzały indeks
Stałe implementacji dostępności
Instrukcje dotyczące przykładów
Informacje prawne
Pakietflash.net
Klasapublic class SharedObject
DziedziczenieSharedObject Inheritance EventDispatcher Inheritance Object

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.0, Flash Player 9, Flash Lite 4

Klasa SharedObject umożliwia odczyt i przechowywanie ograniczonej ilości danych na komputerze użytkownika lub na serwerze. Obiekty udostępnione umożliwiają udostępnianie danych w czasie rzeczywistym pomiędzy wieloma klientami plików SWF i obiektów, które są trwałe na lokalnym komputerze i zdalnym serwerze. Obiekty udostępnione lokalnie są podobne do plików cookie przeglądarki, a obiekty udostępnione zdalnie są podobne do urządzeń umożliwiających przesyłanie danych w czasie rzeczywistym. Aby korzystać z obiektów udostępnianych zdalnie potrzebny jest serwer Adobe Flash Media Server.

Obiekty udostępnione służą do:

  • Zachowywanie lokalnej trwałości. Jest to najprostszy sposób użycia obiektów udostępnionych, który nie wymaga serwera Flash Media Server. Można na przykład wywołać metodę SharedObject.getLocal(), aby utworzyć obiekt udostępniony w aplikacji (np. kalkulator z pamięcią). Po zamknięciu przez użytkownika kalkulatora, program Flash Player zapisuje ostatnią wartość w obiekcie udostępnionym na komputerze użytkownika. Przy kolejnym uruchomieniu kalkulatora, zawiera on uprzednio zapisane wartości. W innym przypadku, jeśli właściwości obiektu udostępnionego zostaną ustawione na wartość null, przed zamknięciem kalkulatora, kolejne uruchomienie aplikacji spowoduje otwarcie jej bez żadnej wartości. Kolejnym przykładem zachowania lokalnej trwałości jest śledzenie preferencji użytkownika lub innych danych na złożonych stronach sieci Web, np. zapisywanie informacji o tym, które artykuły ze strony z najświeższymi wiadomościami zostały przeczytane przez użytkownika. Śledzenie takich informacji pozwala na wyświetlanie artykułów, które zostały już przeczytane w odróżnieniu od nowych, nieprzeczytanych artykułów. Zapisanie tych informacji na komputerze użytkownika zmniejsza obciążenie serwera.
  • Zapisywanie i udostępnianie danych na serwerze Flash Media Server. Dane obiektu udostępnionego mogą znajdować się na serwerze, dzięki czemu mogą je pobierać inni klienci. Przykład: wywołanie metody SharedObject.getRemote() w celu utworzenia zdalnego obiektu udostępnionego, np. listy telefonicznej, która jest trwała na serwerze. Gdy klient zmieni udostępniony obiekt, zmienione dane będą dostępne dla wszystkich klientów aktualnie połączonych z obiektem lub klientów, którzy później się z nim połączą. Jeśli obiekt jest trwały również lokalnie, a klient zmieni dane, mimo że nie ma połączenia z serwerem, dane zostaną skopiowane na zdalny obiekt udostępniony przy kolejnym połączeniu klienta z obiektem.
  • Udostępnianie danych w czasie rzeczywistym. Obiekt udostępniony może udostępniać w czasie rzeczywistym dane dla wielu klientów. Przykład: możliwe jest otwarcie zdalnego obiektu udostępnionego, który zawiera listę użytkowników połączonych z pokojem chatu, jaka jest widoczna dla wszystkich klientów połączonych z obiektem. Gdy użytkownik wejdzie do pokoju lub wyjdzie z niego, obiekt zostanie zaktualizowany i wszyscy klienci połączenie z nim zobaczą zaktualizowaną listę użytkowników pokoju.

Aby utworzyć lokalny obiekt udostępniony, wywołaj metodę SharedObject.getLocal(). Aby utworzyć zdalny obiekt udostępniony, wywołaj metodę SharedObject.getRemote().

Po zamknięciu aplikacji udostępnione obiekty są kasowane lub zapisywane na dysku. Istnieje również możliwość wywołania metody flush() w celu jawnego zapisania danych na dysku.

Ilość miejsca na dysku. Lokalne obiekty udostępnione mają pewne ograniczenia, które należy rozważyć podczas projektowania aplikacji. Czasami pliki SWF nie mają uprawnień do zapisywania lokalnych obiektów udostępnionych, a czasami dane zapisane w lokalnych obiektach udostępnionych mogą być usuwane bez wiedzy użytkownika. Użytkownicy programu Flash Player mogą zarządzać ilością miejsca na dysku dostępną dla poszczególnych domen lub dla wszystkich domen. Jeśli użytkownik zmniejszy ilość dostępnego miejsca na dysku, może to spowodować usunięcie niektórych lokalnych obiektów udostępnionych. Użytkownicy programu Flash Player mogą korzystać również z opcji ochrony prywatności, które uniemożliwiają innym domenom (domenom innym niż aktualnie widoczna na pasku adresy przeglądarki) odczytywanie i zapisywanie lokalnych obiektów udostępnionych. Lokalizacja lokalnych obiektów udostępnianych uległa zmianie w środowisku AIR 3.3 lub nowszym w systemie Mac OS. W przypadku uaktualnienia do przestrzeni nazw wersji 3.3 niektóre obiekty mogą sprawiać wrażenie utraconych.

Uwaga: Pliki SWF, które są zapisywane i uruchamiane na komputerze lokalnym, a nie z serwera zdalnego, zawsze mogą zapisywać udostępnione obiekty innych firm na komputerze. Więcej informacji o udostępnionych obiektach z innych domen zawiera opis panelu globalnych ustawień pamięci dostępny w pomocy programu Flash Player.

Dobrą metodą postępowania jest kontrolowanie błędów związanych z ilością miejsca na dysku i z opcjami ochrony prywatności. Te kontrole należy przeprowadzić po wywołaniu metod getLocal() i flush():

  • SharedObject.getLocal() — program Flash Player zwraca wyjątek w przypadku niepowodzenia wywołania tej metody, np. gdy użytkownik zablokuje udostępnione obiekty innych firm, a domena w pliku SWF nie jest zgodna z domeną na pasku adresu przeglądarki.
  • SharedObject.flush() — program Flash Player zwraca wyjątek w przypadku niepowodzenia tej metody. W przypadku powodzenia zwraca SharedObjectFlushStatus.FLUSHED. Jeśli wymagane jest dodatkowe miejsce na dysku, zwraca SharedObjectFlushStatus.PENDING. Program Flash Player monituje użytkownika, aby zwiększył on ilość wolnego miejsca na dysku dla informacji zapisywanych lokalnie. Ponadto wywoływane jest zdarzenie netStatus zawierające obiekt informacji wskazujący, czy kasowanie powiodło się albo zakończyło niepowodzeniem.

Jeśli plik SWF podejmie próbę utworzenia lub zmodyfikowania lokalnego obiektu udostępnionego, należy się upewnić, że wielkość pliku to co najmniej 215 pikseli szerokości i co najmniej 138 pikseli wysokości (to minimalne wymiary wyświetlania okna dialogowego, które będzie zawierało informację dla użytkownika dotyczącą zwiększenia ilości miejsca na lokalne obiekty udostępnione). Jeśli wymiary pliku SWF są mniejsze, a wymagane jest zwiększenie ilości miejsca na dysku, metoda SharedObject.flush() nie powiedzie się i zwróci SharedObjectFlushedStatus.PENDING oraz zostanie wywołane zdarzenie netStatus.

Zdalne obiekty udostępnione. Za pomocą serwera Flash Media Server można zdalne obiekty udostępnione i korzystać z nich — są one udostępniane w czasie rzeczywistym przez wszystkie klienty podłączone do danej aplikacji. Gdy jeden klient zmieni właściwość zdalnego obiektu udostępnionego, właściwość zostanie zmieniona dla wszystkich podłączonych klientów. Za pomocą zdalnych obiektów udostępnionych można synchronizować klientów, np. wielu graczy w grze.

Każdy zdalny obiekt udostępniony ma właściwość data, która jest obiektem z właściwościami przechowującymi dane. Aby zmienić właściwość obiektu danych, należy wywołać metodę setProperty(). Serwer aktualizuje właściwości, wywołuje zdarzenie sync i z powrotem wysyła właściwości do połączonych klientów.

Istnieje możliwość wybrania miejsca, w którym zdalny obiekt udostępniony będzie trwały: komputer kliencki, serwer lub oba. Domyślnie program Flash Player zapisuje lokalnie trwałe zdalne obiekty udostępnione o wielkości do 100kB. Próba zapisania większego obiektu spowoduje, że program Flash Player wyświetli okno dialogowe lokalnego magazynu, które umożliwia użytkownikowi zezwolenie lub odmówienie na lokalne przechowywanie obiektów udostępnionych. Należy się upewnić, że rozmiar stołu montażowego ma wymiary przynajmniej 215 x 138 pikseli; jest to minimalny rozmiar wymagany przez program Flash w celu poprawnego wyświetlania okna dialogowego.

Jeśli użytkownik wybierze opcję zezwolenia, serwer zapisze obiekt udostępniony i wywoła zdarzenie netStatus z właściwością code o wartości SharedObject.Flush.Success. Jeśli użytkownik wybierze opcję odmowy, serwer nie zapisze obiektu udostępnionego i wywoła zdarzenie netStatus z właściwością code o wartości SharedObject.Flush.Failed.

Wyświetl przykłady

Powiązane elementy interfejsu API



Właściwości publiczne
 WłaściwośćZdefiniowane przez
  client : Object
Wskazuje obiekt, w ramach którego są uaktywniane metody wywołań zwrotnych.
SharedObject
 Inheritedconstructor : Object
Odwołanie do obiektu klasy lub funkcji konstruktora, dotyczące danej instancji obiektu.
Object
  data : Object
[tylko do odczytu] Kolekcja atrybutów przypisanych do właściwości danych; atrybuty te mogą być udostępniane i przechowywane.
SharedObject
  defaultObjectEncoding : uint
[statyczny] Domyślne kodowanie (wersja AMF) wszystkich obiektów udostępnianych utworzonych w pliku SWF.
SharedObject
  fps : Number
[tylko do zapisu] Określa częstotliwość (na sekundę) wysyłania do serwera zmian obiektu udostępnionego, jakie wprowadza klient.
SharedObject
  objectEncoding : uint
Kodowanie obiektów (wersja AMF) dotyczące tego obiektu udostępnianego.
SharedObject
      preventBackup : Boolean
[statyczny] Określa, czy w usłudze kopii zapasowych w środowisku rozproszonym iOS są wykonywane kopie zapasowe lokalnych obiektów współużytkowanych.
SharedObject
  size : uint
[tylko do odczytu] Bieżący rozmiar obiektu udostępnianego (w bajtach).
SharedObject
Metody publiczne
 MetodaZdefiniowane przez
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Rejestruje obiekt detektora zdarzeń w obiekcie EventDispatcher, dzięki czemu detektor będzie otrzymywał powiadomienia o zdarzeniu.
EventDispatcher
  
W przypadku lokalnych obiektów udostępnionych kasuje wszystkie dane i usuwa obiekt udostępniony z dysku.
SharedObject
  
Zamyka połączenie między zdalnym obiektem udostępnionym i serwerem.
SharedObject
  
connect(myConnection:NetConnection, params:String = null):void
Łączy się ze zdalnym obiektem udostępnionym określonym w obiekcie NetConnection.
SharedObject
 Inherited
Wywołuje zdarzenie, tj. kieruje je do przepływu zdarzeń.
EventDispatcher
  
flush(minDiskSpace:int = 0):String
Natychmiast zapisuje lokalnie trwały obiekt w pliku lokalnym.
SharedObject
  
getLocal(name:String, localPath:String = null, secure:Boolean = false):SharedObject
[statyczny] Zwraca odwołanie do lokalnie trwałego obiektu udostępnionego, który jest dostępny tylko dla bieżącego klienta.
SharedObject
  
getRemote(name:String, remotePath:String = null, persistence:Object = false, secure:Boolean = false):SharedObject
[statyczny] Zwraca odwołanie do obiektu udostępnionego serwera Flash Media Server, do którego dostęp może uzyskać wielu klientów.
SharedObject
 Inherited
Sprawdza, czy obiekt EventDispatcher zawiera jakiekolwiek detektory zarejestrowane dla konkretnego typu zdarzeń.
EventDispatcher
 Inherited
Wskazuje, czy dla obiektu zdefiniowano określoną właściwość.
Object
 Inherited
Wskazuje, czy instancja klasy Object należy do łańcucha prototypów obiektu określonego jako parametr.
Object
 Inherited
Wskazuje, czy określona właściwość istnieje i jest przeliczalna.
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
Usuwa detektor z obiektu EventDispatcher.
EventDispatcher
  
send(... arguments):void
Powoduje emisję komunikatu do wszystkich klientów podłączonych do zdalnego obiektu udostępnionego, łącznie z klientem, który wysłał komunikat.
SharedObject
  
setDirty(propertyName:String):void
Wskazuje serwerowi, że wartość właściwości w obiekcie udostępnionym została zmieniona.
SharedObject
  
setProperty(propertyName:String, value:Object = null):void
Aktualizuje wartość właściwości w obiekcie udostępnionym i informuje serwer o tym, że wartość właściwości została zmieniona.
SharedObject
 Inherited
Ustawia dostępność właściwości dynamicznej używanej w pętlach.
Object
 Inherited
Zwraca ciąg reprezentujący obiekt — sformatowany zgodnie z konwencjami właściwymi dla ustawień regionalnych.
Object
 Inherited
Zwraca ciąg reprezentujący określony obiekt.
Object
 Inherited
Zwraca pierwotną wartość dla określonego obiektu.
Object
 Inherited
Sprawdza, czy detektor zdarzeń określonego typu jest zarejestrowany w tym obiekcie EventDispatcher lub jego elementach macierzystych.
EventDispatcher
Zdarzenia
 Zdarzenie Podsumowanie Zdefiniowane przez
 Inherited[zdarzenie broadcast] Wywoływane, gdy program Flash Player lub aplikacja środowiska wykonawczego AIR uzyskuje fokus w systemie operacyjnym i przechodzi w stan aktywny.EventDispatcher
  Wywoływana w przypadku asynchronicznego zgłoszenia wyjątku — pochodzącego z macierzystego kodu asynchronicznego.SharedObject
 Inherited[zdarzenie broadcast] Wywoływane, gdy program Flash Player lub aplikacja AIR traci fokus w systemie operacyjnym i przechodzi w stan nieaktywny.EventDispatcher
  Wywoływana, gdy obiekt SharedObject zgłasza swój stan lub warunek błędu.SharedObject
  Wywoływane, gdy zdalny obiekt udostępniony został zaktualizowany przez serwer.SharedObject
Szczegół właściwości

client

właściwość
client:Object

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.0, Flash Player 9, Flash Lite 4

Wskazuje obiekt, w ramach którego są uaktywniane metody wywołań zwrotnych. Obiektem domyślnym jest this. Właściwość client można ustawić na inny obiekt i metody wywołania zwrotnego będą wywoływane na rzecz tego innego obiektu.



Implementacja
    public function get client():Object
    public function set client(value:Object):void

Zgłasza
TypeError — Właściwość client musi obiektem różnym od wartości null.

data

właściwość 
data:Object  [tylko do odczytu]

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.0, Flash Player 9, Flash Lite 4

Kolekcja atrybutów przypisanych do właściwości data; atrybuty te mogą być udostępniane i przechowywane. Każdy atrybut może być obiektem ActionScript lub JavaScript dowolnego typu — Array, Number, Boolean, ByteArray, XML itd. Przykład: poniższe wiersze przypisują wartości do różnych aspektów obiektu udostępnionego:

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

Wszystkie atrybuty właściwości data obiektu udostępnionego są zapisywane, pod warunkiem że obiekt jest trwały, a obiekt udostępniony zawiera następujące informacje:

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

Uwaga: Nie należy przypisywać wartości bezpośrednio do właściwości data obiektu udostępnionego, np. so.data = someValue; program Flash Player ignoruje takie przypisania.

Aby usuwać atrybuty lokalnych obiektów udostępnionych, należy użyć kodu takiego jak delete so.data.attributeName; ustawienie dla atrybutu wartości null lub undefined dla lokalnego obiektu udostępnionego nie powoduje usunięcia atrybutu.

W celu utworzenia wartości prywatnych dla obiektu udostępnionego — wartości, które będą dostępne tylko dla instancji klienta podczas korzystania z obiektu i nie będą zapisywane z obiektem po jego zamknięciu — należy utworzyć właściwości zapisywane z nazwą inną niż data, co przedstawia poniższy przykład:

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

Obiekt udostępniony zawiera następujące dane:

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

W przypadku zdalnych obiektów udostępnionych, jakie są używane z serwerem, wszystkie atrybuty właściwości data są dostępne dla wszystkich klientów podłączonych do obiektu udostępnionego, a wszystkie atrybuty są zapisywane, jeśli obiekt jest trwały. Jeśli jeden klient zmieni wartość atrybutu, wszyscy klienci zobaczą nową wartość.



Implementacja
    public function get data():Object

Powiązane elementy interfejsu API

defaultObjectEncoding

właściwość 
defaultObjectEncoding:uint

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.0, Flash Player 9, Flash Lite 4

Domyślne kodowanie (wersja AMF) wszystkich obiektów udostępnianych utworzonych w pliku SWF. Gdy lokalne obiekty udostępnione są zapisywane na dysk, właściwość SharedObject.defaultObjectEncoding wskazuje wersję formatu AMF (Action Message Format), jaka powinna być używana: format ActionScript 3.0 (AMF3) lub format ActionScript 1.0 albo 2.0 (AMF0).

Więcej informacji o kodowaniu obiektu, łącznie z opisem różnic między kodowaniem w obiektach lokalnych i zdalnych, zawiera opis właściwości objectEncoding.

Wartość domyślna SharedObject.defaultObjectEncoding powoduje użycie formatu ActionScript 3.0, AMF3. Jeśli wymagane jest zapisanie lokalnego obiektu udostępnionego, który będzie odczytywany przez pliki SWF formatu ActionScript 2.0 lub 1.0, ustaw właściwość SharedObject.defaultObjectEncoding w taki sposób, aby używany był format ActionScript 1.0 lub ActionScript 2.0, flash.net.ObjectEncoding.AMF0 — na początku pliku przed utworzeniem jakichkolwiek lokalnych obiektów udostępnionych. Wszystkie lokalne obiektu udostępnione utworzone potem będą korzystały z kodowania AMF0 i będą mogły wchodzić w interakcje ze starszą zawartością. Nie można zmienić wartości objectEncoding istniejących lokalnych obiektów udostępnionych poprzez ustawienie SharedObject.defaultObjectEncoding po utworzeniu lokalnych obiektów udostępnionych.

Aby ustawiać kodowanie dla poszczególnych obiektów, a nie dla wszystkich obiektów udostępnionych utworzonych przez ten plik SWF, należy ustawić właściwość objectEncoding lokalnego obiektu udostępnionego.



Implementacja
    public static function get defaultObjectEncoding():uint
    public static function set defaultObjectEncoding(value:uint):void

Powiązane elementy interfejsu API

fps

właściwość 
fps:Number  [tylko do zapisu]

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.0, Flash Player 9, Flash Lite 4

Określa częstotliwość (na sekundę) wysyłania do serwera zmian obiektu udostępnionego, jakie wprowadza klient.

Za pomocą tej metody można kontrolować natężenie ruchu między klientem i serwerem. Przykład: jeśli połączenie między klientem i serwerem jest powolne, możliwe jest ustawienie fps na niską wartość. I przeciwnie: jeśli klient jest podłączony do aplikacji obsługującej wielu użytkowników, w której limity czasu mają znaczenie, dla fps można ustawić wyższą wartość.

Ustawienie fps spowoduje wywołanie zdarzenia sync i załadowanie zmian do serwera. Jeśli użytkownik chce zaktualizować serwer ręcznie, należy ustawić fps na 0.

Zmiany nie są wysyłane do serwera do czasu wywołania zdarzenia sync Oznacza to, że jeśli odpowiedzi z serwera są przesyłane wolniej, aktualizacje mogą być wysyłane do serwera z mniejszą częstotliwością niż wartość określona w tej właściwości.



Implementacja
    public function set fps(value:Number):void

objectEncoding

właściwość 
objectEncoding:uint

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.0, Flash Player 9, Flash Lite 4

Kodowanie obiektów (wersja AMF) dotyczące tego obiektu udostępnianego. Gdy lokalny obiekt udostępniony jest zapisywany na dysk, właściwość objectEncoding wskazuje wersję formatu AMF (Action Message Format), jaka powinna być używana: format ActionScript 3.0 (AMF3) lub format ActionScript 1.0 albo 2.0 (AMF0).

Kodowanie obiektu jest obsługiwane inaczej w zależności od tego, czy obiekt udostępniony jest lokalny czy zdalny.

  • Lokalne obiekty udostępnione. Dla lokalnych obiektów udostępnionych można pobierać lub ustawiać wartość właściwości objectEncoding. Wartość objectEncoding określa formatowanie, jakie jest używane podczas zapisywania tego lokalnego obiektu udostępnionego. Jeśli wymagane jest, aby lokalny obiekt udostępniony był odczytywany przez plik SWF ActionScript 2.0 lub 1.0 SWF, należy ustawić dla właściwości objectEncoding wartość ObjectEncoding.AMF0. Nawet jeśli ustawiono zapisywanie obiektu w kodowaniu AMF3, program Flash Player może odczytywać lokalne obiekty udostępnione w formacie AMF0. Oznacza to, że jeśli używana jest wartość domyślna właściwości — ObjectEncoding.AMF3 — plik SWF może odczytywać udostępnione pliki utworzone przez pliki SWF ActionScript 2.0 lub 1.0.
  • Zdalne obiekty udostępnione. Po podłączeniu do serwera zdalny obiekt dziedziczy jego ustawienie objectEncoding ze skojarzonej instancji NetConnection (instancja używana do połączenia ze zdalnym obiektem udostępnionym). Po podłączeniu do serwera zdalny obiekt udostępniony dziedziczy ustawienie defaultObjectEncoding ze skojarzonej instancji NetConnection. Wartości właściwości objectEncoding zdalnego obiektu udostępnionego jest określona przez instancję NetConnection, dlatego ta właściwość jest tylko do odczytu dla zdalnych obiektów udostępnionych.



Implementacja
    public function get objectEncoding():uint
    public function set objectEncoding(value:uint):void

Zgłasza
ReferenceError — Użytkownik podjął próbę ustawienia wartości właściwości objectEncoding w zdalnym obiekcie udostępnionym. Ta właściwość jest tylko do odczytu dla zdalnych obiektów udostępnionych, ponieważ jej wartość jest określona przez skojarzoną instancję NetConnection.

Powiązane elementy interfejsu API

    

preventBackup

właściwość 
preventBackup:Boolean

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 3.7

Określa, czy w usłudze kopii zapasowych w środowisku rozproszonym iOS są wykonywane kopie zapasowe lokalnych obiektów współużytkowanych.

Ustaw wartość true lub false:

  • Wartość true zapobiega wykonywaniu kopii zapasowych jakichkolwiek lokalnych obiektów współużytkowanych w usłudze kopii zapasowych w środowisku rozproszonym iOS.
  • Wartość false (domyśla) powoduje wykonywanie kopii zapasowych lokalnych obiektów współużytkowanych w usłudze kopii zapasowych w środowisku rozproszonym iOS.

Ta właściwość ma zastosowanie tylko do lokalnych obiektów współużytkowanych i systemu iOS.



Implementacja
    public static function get preventBackup():Boolean
    public static function set preventBackup(value:Boolean):void

size

właściwość 
size:uint  [tylko do odczytu]

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.0, Flash Player 9, Flash Lite 4

Bieżący rozmiar obiektu udostępnianego (w bajtach).

Program Flash oblicza wielkość udostępnionego obiektu przechodząc przez wszystkie jego właściwości data; im więcej właściwości data zawiera obiekt, tym dłużej będzie trwało określanie jego wielkości. Określanie wielkości obiektu może trwać dość długo, dlatego korzystanie z tej metody nie jest wskazany, chyba że jest to konieczne.



Implementacja
    public function get size():uint

Przykład  ( Sposób korzystania z tego przykładu )
Poniższy kod tworzy obiekt SharedObject z identyfikatorem "thehobbit". Właściwość o nazwie username zostanie dodana do właściwości data obiektu SharedObject. Następnie śledzona jest właściwość size, co powoduje zwrócenie wskazanej wartości.
import flash.net.SharedObject;

// if these get copied or not
var mySo:SharedObject = SharedObject.getLocal("thehobbit");
mySo.data.username = "bilbobaggins";
trace(mySo.size); // 55
Szczegół metody

clear

()metoda
public function clear():void

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.0, Flash Player 9, Flash Lite 4

W przypadku lokalnych obiektów udostępnionych kasuje wszystkie dane i usuwa obiekt udostępniony z dysku. Odwołanie do obiektu udostępnionego jest nadal aktywne, ale właściwości danych zostały usunięte.

W przypadku zdalnych obiektów udostępnionych używanych z serwerem Flash Media Server metoda clear() powoduje odłączenie obiektu i usunięcie wszystkich danych. Jeśli obiekt udostępniony jest trwały lokalnie, ta metoda powoduje również usunięcie udostępnionego obiektu z dysku. Odniesienie do obiektu udostępnionego jest nadal aktywne, ale właściwości danych zostały usunięte.


Przykład  ( Sposób korzystania z tego przykładu )

Poniższy kod tworzy (a przy kolejnych wykonaniach pobiera) obiekt SharedObject, korzystając z identyfikatora o wartości hostName. Właściwość o nazwie username zostanie dodana do właściwości data obiektu SharedObject. Następnie wywoływana jest metoda clear(), która kasuje wszystkie informacje, jakie zostały dodane do obiektu danych (w tym przypadku była to pojedyncza właściwość o nazwie 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

()metoda 
public function close():void

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.0, Flash Player 9, Flash Lite 4

Zamyka połączenie między zdalnym obiektem udostępnionym i serwerem. Jeśli zdalny obiekt udostępniony jest trwały lokalnie, użytkownik może dokonywać zmian na lokalnej kopii obiektu po wywołaniu tej metody. Wszystkie zmiany dokonane na lokalnym obiekcie są wysyłane na serwer w momencie kolejnego połączenia użytkownika ze zdalnym obiektem udostępnionym.

connect

()metoda 
public function connect(myConnection:NetConnection, params:String = null):void

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.0, Flash Player 9, Flash Lite 4

Łączy się ze zdalnym obiektem udostępnionym określonym w obiekcie NetConnection. Tej metody należy użyć po wywołaniu metody getRemote(). Jeśli połączenie zostanie zrealizowane pomyślnie, wywołane zostanie zdarzenie sync.

Przed próbą rozpoczęcia pracy ze zdalnym obiektem udostępnionym należy sprawdzić za pomocą instrukcji try..catch..finally, czy istnieje możliwość wystąpienia błędu. Następnie należy wykryć i obsłużyć zdarzenie sync przed dokonaniem zmian w obiekcie udostępnionym. Wszystkie zmiany dokonane lokalnie — przed wywołaniem zdarzenia sync — mogą zostać utracone.

Metoda connect() wywoływana jest w celu połączenia ze zdalnym obiektem udostępnionym, na przykład:

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

Parametry

myConnection:NetConnection — Obiekt NetConnection, który korzysta z protokołu RTMP (Real-Time Messaging Protocol), np. obiekt NetConnection użyty do komunikowania się z serwerem Flash Media Server.
 
params:String (default = null) — Ciąg znaków definiujący komunikat, który przekazywany jest do zdalnego obiektu udostępnionego na serwerze. Nie może być używany z serwerem Flash Media Server.


Zgłasza
Error — Programowi Flash Player nie udało się połączyć ze zdalnym obiektem udostępnionym. Należy sprawdzić, czy instancja NetConnection jest poprawna, połączona i czy zdalny obiekt udostępniony został pomyślnie utworzony na serwerze.

Powiązane elementy interfejsu API

flush

()metoda 
public function flush(minDiskSpace:int = 0):String

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.0, Flash Player 9, Flash Lite 4

Natychmiast zapisuje lokalnie trwały obiekt w pliku lokalnym. Jeśli ta metoda nie zostanie użyta, program Flash Player zapisze do pliku obiekt udostępniony w momencie zakończenia jego sesji — gdy plik SWF został zamknięty po odśmieceniu obiektu udostępnionego ze względu na utratę wszystkich odwołań do niego, lub gdy wywołana zostanie metoda SharedObject.clear() lub SharedObject.close().

Jeśli ta metoda zwróci wartość SharedObjectFlushStatus.PENDING, program Flash Player wyświetli okno dialogowe, w którym powiadomi użytkownika o potrzebie zwiększenia dostępnej ilości miejscana dysku dla obiektu z tej domeny. Aby umożliwić zwiększenie miejsca dla obiektów udostępnianych do zapisu w przyszłości, copozwala uniknąć zwrócenia wartości PENDING, należy przekazać wartość do parametru minDiskSpace. Kiedy program Flash Player spróbuje zapisać plik, wyszuka liczbę bajtów przekazaną w parametrze minDiskSpace, zamiast wyszukiwania dostatecznej ilości miejsca do zapisania obiektu udostępnionego w jego bieżącym rozmiarze.

Na przykład, jeśli oczekuje się przyrostu rozmiaru obiektu do maksimum 500 bajtów, mimo że początkowo może on być dużo mniejszy, należy przekazać do parametru minDiskSpace wartość 500. Jeśli program Flash wygeneruje dla użytkownika komunikat z prośbą o przydzielenie miejsca na dysku dla udostępnionego obiektu, poprosi o 500 bajtów. Gdy użytkownik przydzieli żądaną ilość miejsca, program Flash nie będzie prosił o przydzielenie większej ilości miejsca przy kolejnych próbach kasowania obiektu (pod warunkiem że jego wielkość nie przekracza 500 bajtów).

Gdy użytkownik zareaguje na wyświetlenie okna dialogowego, ta metoda zostanie ponownie wywołana. Zostanie wywołane zdarzenie netStatus z właściwością code o wartości SharedObject.Flush.Success lub SharedObject.Flush.Failed.

Parametry

minDiskSpace:int (default = 0) — Minimalna ilość miejsca na dysku (w bajtach), którą należy przydzielić·dla tego obiektu.

Zwraca
String — Jedna z następujących wartości:
  • SharedObjectFlushStatus.PENDING: użytkownik zezwolił na lokalne przechowywanie informacji dla obiektów z tej domeny, lecz ilość przydzielonego·miejsca jest niewystarczająca, aby umieścić obiekt. Program Flash Player monituje użytkownika o zwolnienie pamięci. Aby umożliwić zwiększenie miejsca do zapisu dla obiektów udostępnianych, i tym samym uniknąć zwrócenia wartości SharedObjectFlushStatus.PENDING, należy przekazać wartość do parametru minDiskSpace.
  • SharedObjectFlushStatus.FLUSHED: obiekt udostępniony został pomyślnie zapisany do pliku na dysku lokalnym.

Zgłasza
Error — Program Flash Player nie może zapisać obiektu udostępnionego na dysk. Ten błąd może pojawić się, gdy użytkownik na stałe zablokował możliwość przechowywania informacji lokalnie dla obiektów tej domeny.

Uwaga: lokalna treść może zawsze zapisać na dysk obiekty udostępnione z pozostałych domen (domen innych niż domena w pasku adresu przeglądarki) nawet, jeśli zapisywanie takich obiektów jest niedozwolone.

Powiązane elementy interfejsu API


Przykład  ( Sposób korzystania z tego przykładu )

Poniższy kod tworzy (a przy kolejnych wykonaniach pobiera) obiekt SharedObject, korzystając z identyfikatora o wartości hostName. Właściwość o nazwie username zostanie dodana do właściwości data obiektu SharedObject. Następnie zostanie wywołana metoda flush(), po czym nastąpi sprawdzenie, czy został zwrócony ciąg znaków pending, logiczna wartość true lub false. Należy pamiętać o tym, że wszystkie otwarte instancje SharedObject zostaną automatycznie skasowane zawsze po zamknięciu bieżącej instancji programu 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

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

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.0, Flash Player 9, Flash Lite 4

Zwraca odwołanie do lokalnie trwałego obiektu udostępnionego, który jest dostępny tylko dla bieżącego klienta. Jeśli obiekt udostępniony nie istnieje w danym momencie, ta metoda utworzy jeden. Jeśli jakiekolwiek wartości przekazane do metody getLocal() są nieprawidłowe, lub jeśli wywołanie zakończy się niepowodzeniem, program Flash Player zgłosi wyjątek.

Następujący kod pokazuje, jak przypisać zwrócone odwołanie obiektu udostępnionego do zmiennej.

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

Uwaga: jeśli użytkownik wybrał, aby nie zezwalano na przechowywanie lokalne w tej domenie, obiekt nie zostanie zapisany lokalnie nawet, jeśli określono wartość parametru localPath. Wyjątkiem od tej reguły jest treść lokalna. Lokalna treść może zawsze zapisać na dysk obiekty udostępnione z pozostałych domen (domen innych niż domena w pasku adresu przeglądarki), nawet jeśli zapisywanie takich obiektów jest niedozwolone.

Aby uniknąć konfliktów nazw, program Flash sprawdza lokalizację pliku SWF tworzącego obiekt udostępniony. Na przykład, jeśli plik SWF na stronie www.myCompany.com/apps/stockwatcher.swf tworzy obiekt udostępniony o nazwie portfolio, ten obiekt nie będzie w konflikcie z innym obiektem o nazwie portfolio, który został utworzony przez plik SWF na stronie www.yourCompany.com/photoshoot.swf, ponieważ oba pliki pochodzą z różnych katalogów.

Mimo że parametr localPath jest parametrem opcjonalnym, należy zastanowić się nad jego użyciem zwłaszcza, jeśli pozostałe pliki SWF wymagają dostępu do obiektu udostępnionego. Jeśli dane obiektu udostępnionego są charakterystyczne dla jednego pliku SWF, który nie będzie przenoszony do innej lokalizacji, wówczas użycie wartości domyślnych jest sensowne. Jeśli pozostałe pliki SWF wymagają dostępu do obiektu udostępnionego, lub jeśli plik SWF tworzący obiekt udostępniony będzie w późniejszym czasie przenoszony, wówczas wartość tego parametru decyduje o dostępności obiektu. Na przykład jeśli utworzony zostanie obiekt udostępniony z parametrem localPath ustawionym na wartość domyślną dla pełnej ścieżki do pliku SWF, wówczas żaden inny plik SWF nie uzyska dostępu do tego obiektu. Jeśli w późniejszym czasie oryginalny plik SWF zostanie przeniesiony do innej lokalizacji, wówczas żaden plik, nawet ten plik SWF, nie będzie miał dostępu do danych przechowywanych w obiekcie udostępnionym.

Aby uniknąć przypadkowego ograniczenia dostępu do obiektu udostępnionego, należy skorzystać z parametru localpath. Najbardziej tolerancyjnym podejściem jest ustawienie parametru localPath na znak / (prawy ukośnik), który czyni obiekt udostępniony dostępnym dla wszystkich plików SWF w domenie; powoduje to jednak wzrost prawdopodobieństwa konfliktu nazw z pozostałymi obiektami udostępnionymi w domenie. Bardziej restrykcyjnym podejściem jest połączenie parametru localPath z nazwami folderów, które znajdują się w pełnej ścieżce do pliku SWF. Na przykład dla obiektu udostępnionego portfolio utworzonego przez plik SWF na stronie www.myCompany.com/apps/stockwatcher.swf, można ustawić parametr localPath jako /, /apps lub /apps/stockwatcher.swf. Należy określić, które podejście zapewni optymalną elastyczność dla aplikacji użytkownika.

Korzystając z tej metody, należy wziąć pod uwagę model zabezpieczeń:

  • Nie można uzyskać dostępu do obiektów udostępnionych w innych obszarach izolowanych.
  • Użytkownicy mogą ograniczyć dostęp do obiektów udostępnionych za pomocą okna dialogowego Ustawienia Flash Player lub Menedżera ustawień. Domyślnie aplikacja może utworzyć obiekty udostępnione do 100 kB danych na domenę. Administratorzy i użytkownicy mogą także tworzyć ograniczenia możliwości zapisu w systemie plików.

Przypuśćmy, że treść pliku SWF publikowana jest w celu odtworzenia jako pliki lokalne (pliki SWF zainstalowane lokalnie lub pliki EXE), należy wówczas uzyskać dostęp do określonego obiektu udostępnionego z więcej jak jednego lokalnego pliku SWF. W tej sytuacji należy mieć świadomość, że możliwe są dwie różne lokalizacje przechowywania obiektów udostępnionych jako plików lokalnych. Domena, która jest używana, zależy od uprawnień zabezpieczeń nadanych lokalnemu plikowi, który utworzył obiekt udostępniony. Pliki lokalne mogą mieć trzy różne poziomy uprawnień:

  1. Dostęp tylko do lokalnego systemu plików.
  2. Dostęp tylko do sieci.
  3. Dostęp do sieci i lokalnego systemu plików.

Pliki lokalne z dostępem do lokalnego systemu plików (poziom 1 lub 3) przechowują swoje obiekty udostępnione w jednej lokalizacji. Pliki lokalne bez dostępu do lokalnego systemu plików (poziom 2) przechowują swoje obiekty udostępnione w innej lokalizacji.

Istnieje możliwość zablokowania pliku SWF przed korzystaniem z tej metody, ustawiając parametr allowNetworking znaczników object oraz embed na stronie HTML zawierającej treść SWF.

Więcej informacji zawiera temat Bezpieczeństwo w Centrum programistów programu Flash Player.

Parametry

name:String — Nazwa obiektu. Nazwa może zawierać prawy ukośnik (/); np. work/addresses jest poprawną nazwą. Spacje oraz poniższe znaki są niedozwolone w nazwie obiektu udostępnionego:
  ~ % & \ ; : " ' , < > ? # 
  
 
localPath:String (default = null) — Pełna lub częściowa ścieżka do pliku SWF, który utworzył obiekt udostępniony i określa miejsce, w którym ten obiekt będzie przechowywany lokalnie. Jeśli ten parametr nie zostanie określony, użyta zostanie pełna ścieżka.
 
secure:Boolean (default = false) — Wskazuje, czy dostęp do tego obiektu udostępnionego jest ograniczany do plików SWF, które dostarczone są za pomocą połączenia HTTPS. Jeśli plik SWF użytkownika dostarczany jest za pomocą protokołu HTTPS, wartość tego parametru ma naspujące skutki:
  • Jeśli ten parametr ma wartość true, program Flash Player utworzy nowy bezpieczny obiekt udostępniony lub pobiera odwołanie do istniejącego bezpiecznego obiektu udostępnionego. Odczytać z lub zapisać do tego bezpiecznego obiektu udostępnionego mogą tylko pliki SWF dostarczone za pomocą protokołu HTTPS, który wywołuje metodęSharedObject.getLocal() z parametrem secure o wartości true.
  • Jeśli ten parametr ma wartość false, program Flash Player utworzy nowy obiekt udostępniony lub pobierze odwołanie do istniejącego obiektu udostępnionego, z którego mogą czytać lub do którego mogą zapisywać pliki SWF dostarczone za pomocą połączeń protokołu innego niż HTTPS.

Jeśli plik SWF użytkownika został dostarczony za pomocą połączenia protokołu innego niż HTTPS i nastąpi próba ustawienia tego parametru na wartość true, utworzenie nowego obiektu udostępnionego (lub dostęp do uprzednio utworzonego bezpiecznego obiektu udostępnionego) zakończy się niepowodzeniem i zostanie zwrócona wartość null. Niezależnie od wartości tego parametru tworzone obiekty udostępnione są wliczane do całkowitej ilości miejsca na dysku dostępnej dla domeny.

Poniższy diagram przedstawia użycie parametru secure:

diagram bezpiecznego obiektu udostępnionego

Zwraca
SharedObject — Odwołanie do lokalnie trwałego obiektu udostępnionego, który jest dostępny tylko dla bieżącego klienta. Jeśli program Flash Player nie może utworzyć lub znaleźć obiektu udostępnionego (na przykład, jeśli określono parametr localPath, lecz wskazany w nim katalog nie istnieje), ta metoda zgłosi wyjątek.

Zgłasza
Error — Program Flash Player nie może utworzyć obiektu udostępnionego bez żadnego powodu. Ten błąd może pojawić się, gdy tworzenie i przechowywanie trwałego obiektu udostępnionego przez inną treść programu Flash jest zabronione (nie dotyczy treści lokalnej). Uzytkownicy mogą wykluczyć trwałe obiekty udostępnione w panelu Global Storage Settings Menedżera ustawień, umieszczonego na stronie http://www.adobe.com/support/documentation/en/flashplayer/help/settings_manager03.html.

getRemote

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

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.0, Flash Player 9, Flash Lite 4

Zwraca odwołanie do obiektu udostępnionego serwera Flash Media Server, do którego dostęp może uzyskać wielu klientów. Jeśli zdalny obiekt udostępniony nie istnieje w danym momencie, ta metoda utworzy jeden.

Aby utworzyć zdalny obiekt udostępniony, należy wywołać metodę getRemote() oraz metodę connect() w celu połączenia obiektu udostępnianego z serwera tak, jak przedstawiono poniżej:

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

Aby potwierdzić, że lokalne i zdalne kopie obiektu udostępnionego są zsynchronizowane, należy wykryć i obsłużyć zdarzenie sync. Wszyscy klienci, którzy chcą udostępnić ten obiekt muszą przekazać tę samą wartość dla parametru name i remotePath.

Aby utworzyć obiekt udostępniony wyłącznie bieżącemu klientowi, należy skorzystać z metodySharedObject.getLocal().

Parametry

name:String — Nazwa zdalnego obiektu udostępnianego. Nazwa może zawierać prawy ukośnik (/); np. work/addresses jest poprawną nazwą. Spacje oraz poniższe znaki są niedozwolone w nazwie obiektu udostępnionego:
    ~ % & \ ; :  " ' , > ? ? #
 
remotePath:String (default = null) — Identyfikator URI serwera, na którym przechowywane będą obiekty udostępniane. Ten identyfikator URI musi być identyczny z identyfikatorem URI obiektu NetConnection przekazanego do metody connect().
 
persistence:Object (default = false) — Określa, czy atrybuty właściwości danych obiektu udostępnionego są trwałe lokalnie, zdalnie, czy w obu przypadkach. Ten parametr można również określić w miejscu, w którym obiekt udostępniony będzie przechowywany lokalnie. Dopuszczalne są następujące wartości:
  • Wartość false wskazuje, że obiekt udostępniony nie jest trwały na komputerze klienckim lub serwerze.
  • Wartość true wskazuje, że obiekt udostępniony jest trwały jedynie na serwerze.
  • Pełna lub częściowa ścieżka lokalna do obiektu udostępnionego wskazuje, że obiekt udostępniony jest trwały na komputerze klienckim i serwerze. Na komputerze klienckim przechowywany jest w określonej ścieżce; na serwerze przechowywany jest w podkatalogu katalogu aplikacji.

Uwaga: jeśli użytkownik wybrał, aby nie zezwalano na przechowywanie lokalne w tej domenie, obiekt nie zostanie zapisany lokalnie nawet, jeśli ścieżka lokalna zostanie określona na stałe. Aby uzyskać więcej informacji na ten temat, należy zapoznać się z opisem klasy.

 
secure:Boolean (default = false) — Wskazuje, czy dostęp do tego obiektu udostępnionego jest ograniczany do plików SWF, które dostarczone są za pomocą połączenia HTTPS. Aby uzyskać więcej informacji, należy zapoznać się z opisem parametru secure metody getLocal.

Zwraca
SharedObject — Odwołanie do obiektu, który może być udostępniany pomiędzy wieloma klientami.

Zgłasza
Error — Program Flash Player nie może utworzyć lub znaleźć obiektu udostępnionego. Ten problem może wystąpić, jeśli w parametrze remotePath i persistence określono ścieżki, które nie istnieją.

Powiązane elementy interfejsu API

send

()metoda 
public function send(... arguments):void

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.0, Flash Player 9, Flash Lite 4

Powoduje emisję komunikatu do wszystkich klientów podłączonych do zdalnego obiektu udostępnionego, łącznie z klientem, który wysłał komunikat. W celu przetworzenia i zareagowania na komunikat należy utworzyć funkcję wywołania zwrotnego dołączoną do obiektu udostępnionego.

Parametry

... arguments — Jeden lub większa liczba argumentów: ciąg znaków, który identyfikuje komunikat, nazwa jednej lub większej liczby funkcji obsługi, jakie zostaną dołączone do obiektu udostępnionego, a także parametry opcjonalne dowolnego typu. Nazwa modułu obsługi może być jedynie na pierwszym poziomie zagłębienia (oznacza to, że nie może mieć formatu element nadrzędny / element podrzędny) i pozostaje względna wobec obiektu udostępnionego. Argumenty są serializowane i wysyłane za pomocą połączenia, a odbierający moduł obsługi otrzymuje je w tej samej kolejności. Jeśli parametr jest obiektem cyklicznym (np. powiązaną listą cykliczna), moduł serializujący obsługuje odwołania poprawnie.

Uwaga: Nie należy używać wyrazów zastrzeżonych dla nazw funkcji. Przykład funkcja o nazwie myRemoteSO.send("close") zakończy się niepowodzeniem.

setDirty

()metoda 
public function setDirty(propertyName:String):void

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.0, Flash Player 9, Flash Lite 4

Wskazuje serwerowi, że wartość właściwości w obiekcie udostępnionym została zmieniona. Ta metoda oznacza właściwość jako dirty, co oznacza zmienione.

Aby utworzyć właściwości dla obiektu udostępnionego, należy wywołać metodę SharedObject.setProperty().

Metoda SharedObject.setProperty() implementuje metodę setDirty(). W większości przypadków — np. gdy wartość właściwości jest typu pierwotnego, takiego jak String lub Number — można wywołać metodę setProperty() zamiast metody setDirty(). Jeśli jednak wartość właściwości jest obiektem, który zawiera własne właściwości, należy wywołać metodę setDirty() w celu wskazania czasu zmiany wartości w obiekcie.

Parametry

propertyName:String — Nazwa właściwości, która została zmieniona.

Powiązane elementy interfejsu API

setProperty

()metoda 
public function setProperty(propertyName:String, value:Object = null):void

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.0, Flash Player 9, Flash Lite 4

Aktualizuje wartość właściwości w obiekcie udostępnionym i informuje serwer o tym, że wartość właściwości została zmieniona. Metoda setProperty() w sposób jawny oznacza właściwości jako zmienione (dirty).

Więcej informacji o zdalnych obiektach udostępnionych zawiera dokumentacja serwera Flash Media Server.

Uwaga: Metoda SharedObject.setProperty() implementuje metodę setDirty(). W większości przypadków — np. gdy wartość właściwości jest typu pierwotnego, takiego jak String lub Number — można użyć metody setProperty() zamiast metody setDirty(). Jeśli jednak wartość właściwości jest obiektem, który zawiera własne właściwości, należy użyć metody setDirty() w celu wskazania czasu zmiany wartości w obiekcie. Lepszą metodą postępowania jest wywoływanie metody setProperty() zamiast setDirty(), ponieważ metoda setProperty() aktualizuje wartość właściwości tylko wówczas, gdy wartość została zmieniona, natomiast setDirty() wymusza synchronizację wszystkich klientów subskrybujących.

Parametry

propertyName:String — Nazwa właściwości w obiekcie udostępnionym.
 
value:Object (default = null) — Nazwa właściwości (obiekt ActionScript)lub null w celu usunięcia właściwości.

Powiązane elementy interfejsu API

Szczegół zdarzenia

asyncError

Zdarzenie
Typ obiektu zdarzenia: flash.events.AsyncErrorEvent
właściwość AsyncErrorEvent.type = flash.events.AsyncErrorEvent.ASYNC_ERROR

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.0, Flash Player 9, Flash Lite 4

Wywoływana w przypadku asynchronicznego zgłoszenia wyjątku — pochodzącego z macierzystego kodu asynchronicznego.

Stała AsyncErrorEvent.ASYNC_ERROR definiuje wartość właściwości type obiektu zdarzenia asyncError.

To zdarzenie ma następujące właściwości:

WłaściwośćWartość
bubblesfalse
cancelablefalse; nie ma domyślnego zachowania, które można byłoby anulować.
currentTargetObiekt przetwarzający aktywnie obiekt Event za pomocą detektora zdarzeń.
targetObiekt wywołujący zdarzenie
errorBłąd, który spowodował wywołanie zdarzenia.

netStatus

Zdarzenie  
Typ obiektu zdarzenia: flash.events.NetStatusEvent
właściwość NetStatusEvent.type = flash.events.NetStatusEvent.NET_STATUS

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.0, Flash Player 9, Flash Lite 4

Wywoływana, gdy obiekt SharedObject zgłasza swój stan lub warunek błędu. Zdarzenie netStatus zawiera właściwość info, która jest obiektem informacji zawierającym określone informacje dotyczące zdarzenia np. czy próba połączenia zakończyła się powodzeniem lub czy obiekt udostępniony został pomyślnie zapisany na dysku lokalnym.

Definiuje wartość właściwości type obiektu zdarzenia netStatus.

To zdarzenie ma następujące właściwości:

WłaściwośćWartość
bubblesfalse
cancelablefalse; nie ma domyślnego zachowania, które można byłoby anulować.
currentTargetObiekt przetwarzający aktywnie obiekt Event za pomocą detektora zdarzeń.
infoObiekt z właściwościami opisującymi stan obiektu lub warunek błędu.
targetObiekt NetConnection lub NetStream informujący o swoim stanie.

Powiązane elementy interfejsu API

sync

Zdarzenie  
Typ obiektu zdarzenia: flash.events.SyncEvent
właściwość SyncEvent.type = flash.events.SyncEvent.SYNC

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.0, Flash Player 9, Flash Lite 4

Wywoływane, gdy zdalny obiekt udostępniony został zaktualizowany przez serwer.

Definiuje wartość właściwości type obiektu zdarzenia sync.

To zdarzenie ma następujące właściwości:

WłaściwośćWartość
bubblesfalse
cancelablefalse; nie ma domyślnego zachowania, które można byłoby anulować.
currentTargetObiekt przetwarzający aktywnie obiekt Event za pomocą detektora zdarzeń.
changeListTablica z właściwościami opisującymi stan tablicy.
targetInstancja klasy SharedObject uaktualniona przez serwer.

Powiązane elementy interfejsu API

SharedObjectExample.as

Poniższy kod tworzy (a w kolejnych wykonaniach pobiera) aobiekt udostępniony za pomocą identyfikatora·"application-name". Po naciśnięciu kliknięciu przycisku Save, metoda saveValue() będzie usiłowała zapisać właściwość o nazwie savedValue we właściwości data obiektu SharedObject. Jeśli program Flash Player będzie zmuszony poprosić o nadanie uprawnienia do zapisu danych, w momencie jego przyznaniu lub odrzucenia wywołana zostanie metoda onFlushStatus(). Po naciśnięciu przycisku Clear, metoda clearValue() usunie wartość zapisaną we właściwości savedValue; przy kolejnym ładowaniu pliku SWF pobierana wartość jest typu 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 ]Dlaczego język angielski?
Treść dokumentacji języka ActionScript 3.0 wyświetlana w języku angielskim

Niektóre części dokumentacji języka ActionScript 3.0 nie są przetłumaczone na poszczególne języki. Gdy element nie jest przetłumaczony na dany język, jest wyświetlany tekst angielski. Na przykład opis klasy ga.controls.HelpBox nie jest przetłumaczony na żaden dodatkowy język. Z tego powodu polska wersja dokumentacji zawiera opis klasy ga.controls.HelpBox w języku angielskim.