Adobe® Flash® Platform 用 ActionScript® 3.0 リファレンスガイド
ホーム  |  パッケージおよびクラスリストの非表示 |  パッケージ  |  クラス  |  新機能  |  索引  |  付録  |  英語で表示される理由
フィルター: AIR 30.0 以前, Flash Player 30.0 以前, Flash Lite 4
Flex 4.6 以前, Flash Pro CS6 以前
フィルターを非表示
flash.net 

SharedObject  - AS3

パッケージx

トップレベル
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

言語エレメント

グローバル定数
グローバル関数
演算子
ステートメント、キーワード、ディレクティブ
特殊な型

付録

新機能
コンパイルエラー
コンパイラー警告
ランタイムエラー
ActionScript 3 への移行
サポートされている文字セット
MXML のみのタグ
モーション XML エレメント
Timed Text タグ
使用されなくなったエレメントのリスト
Accessibility Implementation 定数
ActionScript の例の使用方法
法律上の注意
パッケージflash.net
クラスpublic class SharedObject
継承SharedObject Inheritance EventDispatcher Inheritance Object

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0, Flash Player 9, Flash Lite 4

SharedObject クラスは、ユーザーのコンピューターまたはサーバー上で限定された量のデータを読み込みおよび格納するために使用されます。共有オブジェクトを使用すると、ローカルコンピューターまたはリモートサーバー上に永続化されているクライアント SWF ファイルとオブジェクト間で、リアルタイムでデータを共有することができます。ローカル共有オブジェクトはブラウザーのクッキーに似ており、リモート共有オブジェクトはリアルタイムデータ転送デバイスに似ています。リモート共有オブジェクトを使用するには、Adobe Flash Media Server が必要です。

共有オブジェクトを使用して次の操作を行います。

  • ローカルの永続性を維持する。共有オブジェクトを使用するにはこれが最も簡単な方法で、Flash Media Server は使用しません。例えば、SharedObject.getLocal() を呼び出して、アプリケーション内にメモリ付き電卓などの共有オブジェクトを作成することができます。ユーザーが電卓を閉じると、Flash Player により共有オブジェクトの最後の値がユーザーのコンピューターに保存されます。次に電卓を実行すると、電卓に前の値が表示されます。電卓アプリケーションを閉じる前に共有オブジェクトのプロパティを null に設定すると、次にアプリケーションを起動したときに、電卓にいずれの値も表示されません。その他のローカルの永続性の管理例としては、複雑な Web サイトのユーザー環境設定やその他のデータ(ニュースサイト上でユーザーが閲覧した記事のレコードなど)のトラッキングがあります。この情報をトラッキングすると、新規で未読の記事でなく、既に閲覧された記事を表示できます。 この情報をユーザーのコンピューターに保存すると、サーバーの負荷を削減できます。
  • Flash Media Server にデータを格納および共有する。サーバー上の共有オブジェクトには、他のクライアントが取得可能なデータを格納できます。例えば、SharedObject.getRemote() を呼び出して、電話帳などのリモート共有オブジェクトを作成します。このオブジェクトは、サーバー上に永続化されます。あるクライアントが共有オブジェクトを変更すると、現在そのオブジェクトに接続しているクライアントおよび後でそのオブジェクトに接続するクライアントのすべてが、変更されたデータを利用できます。オブジェクトがローカルに永続化され、サーバーに接続されていないときにクライアントがデータを変更すると、次回クライアントがリモート共有オブジェクトに接続するときに、データがそのオブジェクトにコピーされます。
  • リアルタイムでデータを共有する。共有オブジェクトは、複数のクライアント間でリアルタイムにデータを共有できます。例えば、チャットルームに接続しているユーザーのリストを格納するリモート共有オブジェクトを開くことができます。これはオブジェクトに接続しているすべてのクライアントに表示することができます。ユーザーがチャットルームに入退室するときに、オブジェクトが更新され、オブジェクトに接続しているすべてのクライアントに、更新後のチャットルームユーザーの一覧が表示されます。

ローカル共有オブジェクトを作成するには、SharedObject.getLocal() を呼び出します。リモート共有オブジェクトを作成するには、SharedObject.getRemote() を呼び出します。

アプリケーションを閉じると、共有オブジェクトが保存されます。つまり、ディスクに書き込まれます。また、flush() メソッドを呼び出して、データを明示的にディスクに書き込むこともできます。

ローカルディスク領域についての考慮事項。 ローカル共有オブジェクトには、アプリケーションを設計する際に考慮が必要な、いくつかの制限があります。SWF ファイルでローカル共有オブジェクトの書き込みが許可されない場合があります。ローカル共有オブジェクトに格納されているデータが、わからないうちに削除される場合もあります。Flash Player のユーザーは、個々のドメインまたはすべてのドメインで使用できるディスク領域を管理できます。ユーザーが使用可能なディスク領域の量を減らすと、一部のローカル共有オブジェクトが削除される可能性があります。Flash Player のユーザーには、サードパーティードメイン(現在のブラウザーのアドレスバーにあるドメイン以外のドメイン)によるローカル共有オブジェクトの読み取りまたは書き込みを防止できるプライバシーコントロール機能もあります。また、Mac OS では AIR 3.3 以降に、ローカル共有オブジェクトの場所が変更されました。そのため、3.3 名前空間にアップグレードする場合、オブジェクトが実際には消失していないのに、消失したような状態になることがあります。

注意:リモートサーバーではなくローカルコンピューターに格納および実行される SWF ファイルは、常にサードパーティーの共有オブジェクトをディスクに書き込むことができます。サードパーティーの共有オブジェクトの詳細については、Flash Player のヘルプの「グローバルストレージ設定パネル」を参照してください。

ディスク領域の量とユーザーのプライバシーコントロールに関する失敗についてチェックすることをお勧めします。getLocal() および flush() の呼び出し時にこれらのチェックを実行します。

  • SharedObject.getLocal() ユーザーがサードパーティーの共有オブジェクトを無効にしていて、SWF ファイルのドメインとブラウザーのアドレスバーに表示されるドメインが一致しない場合など、このメソッドの呼び出しに失敗すると、Flash Player は例外をスローします。
  • SharedObject.flush() このメソッドの呼び出しに失敗すると、Flash Player は例外をスローします。呼び出しに成功すると、SharedObjectFlushStatus.FLUSHED を返します。追加の記憶域が必要な場合は、SharedObjectFlushStatus.PENDING を返します。Flash Player はローカルに保存する情報用の記憶域を増加するようにユーザーに要求します。したがって、netStatus イベントは保存に失敗したか成功したかを示す情報オブジェクトと一緒に送出されます。

SWF ファイルでローカル共有オブジェクトを作成または変更しようとする場合、SWF ファイルの幅が最低でも 215 ピクセル、高さが最低でも 138 ピクセルあることを確認してください。このサイズは、ダイアログボックス(ローカル共有オブジェクトの記憶域制限を増やすかどうかをユーザーに確認する)を表示するための最小の大きさです。SWF ファイルがこの大きさよりも小さく、記憶域制限を増やす必要がある場合、SharedObject.flush() は失敗し、SharedObjectFlushedStatus.PENDING を返し、netStatus イベントを送出します。

リモート共有オブジェクト。 Flash Media Server では、アプリケーションに接続しているすべてのクライアントがリアルタイムで共有する、リモート共有オブジェクトを作成および使用できます。あるクライアントがリモート共有オブジェクトのプロパティを変更すると、接続しているすべてのクライアントのプロパティが変更されます。リモート共有オブジェクトを使用すると、例えば、マルチプレーヤーゲームのユーザーなどのクライアントを同期できます。

各リモート共有オブジェクトに data プロパティがあります。これは、データを格納するプロパティを持つオブジェクトです。setProperty() を呼び出して、データオブジェクトのプロパティを変更します。サーバーは、プロパティを更新し、sync イベントを送出し、接続しているクライアントにプロパティを返送します。

クライアント、サーバー、またはその両方のリモート共有オブジェクトを永続化できます。デフォルトでは、サイズが最大 100K の永続的なリモート共有オブジェクトがローカルに保存されます。大きなオブジェクトを保存しようとすると、ローカル記憶領域ダイアログボックスが表示されます。このダイアログボックスでは、ユーザーが共有オブジェクト用のローカル記憶域の使用を許可または拒否できます。ステージのサイズは必ず 215 × 138 ピクセル以上に設定してください。これは、ダイアログボックスを表示するために必要な最小サイズです。

ユーザーが「許可」をクリックすると、サーバーに共有オブジェクトが保存され、netStatus イベントが送出されます。このときの code プロパティは SharedObject.Flush.Success です。ユーザーが「拒否」を選択すると、サーバーに共有オブジェクトは保存されず、netStatus イベントが送出されます。このときの code プロパティは SharedObject.Flush.Failed です。

例を表示

関連する API エレメント



パブリックプロパティ
 プロパティ定義元
  client : Object
コールバックメソッドが呼び出されるオブジェクトを示します。
SharedObject
 Inheritedconstructor : Object
指定されたオブジェクトインスタンスのクラスオブジェクトまたはコンストラクター関数への参照です。
Object
  data : Object
[読み取り専用] オブジェクトの data プロパティに割り当てられた属性のコレクションです。これらの属性は共有および保存することができます。
SharedObject
  defaultObjectEncoding : uint
[静的] SWF ファイルで作成されたすべてのローカル共有オブジェクトのデフォルトのオブジェクトエンコード(AMF バージョン)です。
SharedObject
  fps : Number
[書き込み専用] 共有オブジェクトに対するクライアントの変更がサーバーに送信される回数(1 秒あたり)を指定します。
SharedObject
  objectEncoding : uint
この共有オブジェクトのオブジェクトエンコード(AMF バージョン)です。
SharedObject
      preventBackup : Boolean
[静的] ローカル共有オブジェクトが iOS のクラウドバックアップサービスでバックアップされるかどうかを指定します。
SharedObject
  size : uint
[読み取り専用] 共有オブジェクトの現在のサイズ(バイト数)です。
SharedObject
パブリックメソッド
 メソッド定義元
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
イベントリスナーオブジェクトを EventDispatcher オブジェクトに登録し、リスナーがイベントの通知を受け取るようにします。
EventDispatcher
  
ローカル共有オブジェクトの場合、すべてのデータを消去し、共有オブジェクトをディスクから削除します。
SharedObject
  
リモート共有オブジェクトとサーバーとの間の接続を閉じます。
SharedObject
  
connect(myConnection:NetConnection, params:String = null):void
指定した NetConnection オブジェクトを介して、サーバー上のリモート共有オブジェクトに接続します。
SharedObject
 Inherited
イベントをイベントフローに送出します。
EventDispatcher
  
flush(minDiskSpace:int = 0):String
ローカルに永続化された共有オブジェクトを直ちにローカルファイルに書き込みます。
SharedObject
  
getLocal(name:String, localPath:String = null, secure:Boolean = false):SharedObject
[静的] 現在のクライアントだけが利用できるローカル永続共有オブジェクトへの参照を返します。
SharedObject
  
getRemote(name:String, remotePath:String = null, persistence:Object = false, secure:Boolean = false):SharedObject
[静的] 複数のクライアントがアクセスできる、Flash Media Server 上の共有オブジェクトへの参照が返されます。
SharedObject
 Inherited
EventDispatcher オブジェクトに、特定のイベントタイプに対して登録されたリスナーがあるかどうかを確認します。
EventDispatcher
 Inherited
オブジェクトに指定されたプロパティが定義されているかどうかを示します。
Object
 Inherited
Object クラスのインスタンスが、パラメーターとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。
Object
 Inherited
指定されたプロパティが存在し、列挙できるかどうかを示します。
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
EventDispatcher オブジェクトからリスナーを削除します。
EventDispatcher
  
send(... arguments):void
リモート共有オブジェクトに接続しているすべてのクライアント(メッセージを送信したクライアントも含む)に、メッセージをブロードキャストします。
SharedObject
  
setDirty(propertyName:String):void
共有オブジェクトのプロパティの値が変更されたことをサーバーに通知します。
SharedObject
  
setProperty(propertyName:String, value:Object = null):void
共有オブジェクトのプロパティの値を更新し、プロパティの値が変更されたことをサーバーに通知します。
SharedObject
 Inherited
ループ処理に対するダイナミックプロパティの可用性を設定します。
Object
 Inherited
ロケール固有の規則に従って書式設定された、このオブジェクトのストリング表現を返します。
Object
 Inherited
指定されたオブジェクトのストリング表現を返します。
Object
 Inherited
指定されたオブジェクトのプリミティブな値を返します。
Object
 Inherited
指定されたイベントタイプについて、この EventDispatcher オブジェクトまたはその祖先にイベントリスナーが登録されているかどうかを確認します。
EventDispatcher
イベント
 イベント 概要 定義元
 Inherited[ブロードキャストイベント] Flash Player または AIR アプリケーションがオペレーティングシステムのフォーカスを取得して、アクティブになったときに送出されます。EventDispatcher
  非同期形式で、つまりネイティブ非同期コードから例外がスローされると送出されます。SharedObject
 Inherited[ブロードキャストイベント] Flash Player または AIR アプリケーションがオペレーティングシステムのフォーカスを失って、非アクティブになったときに送出されます。EventDispatcher
  SharedObject インスタンスが、そのステータスまたはエラーの状況をレポートするときに送出されます。SharedObject
  リモート共有オブジェクトがサーバーによって更新されるときに送出されます。SharedObject
プロパティの詳細

client

プロパティ
client:Object

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0, Flash Player 9, Flash Lite 4

コールバックメソッドが呼び出されるオブジェクトを示します。デフォルトのオブジェクトは this です。client プロパティを別のオブジェクトに設定し、コールバックメソッドをその別のオブジェクトで呼び出すことができます。



実装
    public function get client():Object
    public function set client(value:Object):void

例外
TypeError client プロパティは、null 以外のオブジェクトに設定する必要があります。

data

プロパティ 
data:Object  [読み取り専用]

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0, Flash Player 9, Flash Lite 4

オブジェクトの data プロパティに割り当てられた属性のコレクションです。これらの属性は共有および保存することができます。それぞれの属性は、ActionScript または JavaScript タイプのオブジェクトです。例えば、Array、Number、Boolean、ByteArray、XML などです。次のコードでは、共有オブジェクトの各種属性に値を割り当てています。

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

永続的なオブジェクトの場合は、共有オブジェクトの data プロパティのすべての属性が保存されます。また共有オブジェクトには次の情報が含まれています。

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

注意:共有オブジェクトの data プロパティに、so.data = someValue のように値を直接割り当てないようにしてください。このような割り当ては無視されます。

ローカル共有オブジェクトの属性を削除するには、delete so.data.attributeName というコードを使用します。ローカル共有オブジェクトの属性を null または undefined に設定しても、属性は削除されません。

共有オブジェクトのプライベート値(オブジェクトの使用中にそのクライアントインスタンスでのみ利用でき、閉じるときにオブジェクトと共に保存されない値)を作成するには、data 以外の名前のプロパティを作成して、その値を保存します。次に例を示します。

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

共有オブジェクトには次のデータが含まれます。

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

サーバーで使用されるリモート共有オブジェクトの場合、共有オブジェクトに接続しているすべてのクライアントが data プロパティのすべての属性を利用可能で、そのオブジェクトが永続化されている場合、すべての属性が保存されます。あるクライアントが属性の値を変更すると、すべてのクライアントに新しい値が表示されます。



実装
    public function get data():Object

関連する API エレメント

defaultObjectEncoding

プロパティ 
defaultObjectEncoding:uint

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0, Flash Player 9, Flash Lite 4

SWF ファイルで作成されたすべてのローカル共有オブジェクトのデフォルトのオブジェクトエンコード(AMF バージョン)です。ローカル共有オブジェクトがディスクに書き込まれるとき、SharedObject.defaultObjectEncoding プロパティは、使用する必要のある Action Message Format バージョンを示します。ActionScript 3.0 フォーマット(AMF3)または ActionScript 1.0 または 2.0 フォーマット(AMF0)です。

ローカル共有オブジェクトとリモート共有オブジェクトのエンコードの違いを含む、オブジェクトエンコードの詳細については、objectEncoding プロパティの説明を参照してください。

SharedObject.defaultObjectEncoding のデフォルト値は、ActionScript 3.0 フォーマット AMF3 を使用するように設定されています。ActionScript 2.0 または 1.0 SWF ファイルで読み込めるローカル共有オブジェクトの書き込みが必要な場合は、ローカル共有オブジェクトを作成する前に、スクリプトの先頭部分で SharedObject.defaultObjectEncoding を設定して、ActionScript 1.0 または ActionScript 2.0 フォーマット flash.net.ObjectEncoding.AMF0 を使用するようにします。それ以降に作成されるすべてのローカル共有オブジェクトで、AMF0 エンコーディングが使用され、古いコンテンツとやり取りできるようになります。ローカル共有オブジェクトを作成した後は、既存のローカル共有オブジェクトの objectEncoding 値を SharedObject.defaultObjectEncoding を設定して変更することはできません。

SWF ファイルで作成したすべての共有オブジェクトに対してではなく、オブジェクトごとにオブジェクトエンコードを設定するには、ローカル共有オブジェクトの objectEncoding プロパティを設定します。



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

関連する API エレメント

fps

プロパティ 
fps:Number  [書き込み専用]

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0, Flash Player 9, Flash Lite 4

共有オブジェクトに対するクライアントの変更がサーバーに送信される回数(1 秒あたり)を指定します。

クライアントとサーバー間のトラフィック量を制限する場合に、このメソッドを使用します。例えば、クライアントとサーバー間の接続が比較的遅い場合は、fps を小さめの値に設定するとよいでしょう。逆に、クライアントが、タイミングが重要なマルチユーザーアプリケーションに接続している場合は、fps をやや大きめの値に設定できます。

fps を設定すると、sync イベントがトリガーされ、サーバーに対するすべての変更が更新されるようになります。サーバーを手動のみで更新する場合は、fps を 0 に設定します。

sync イベントが送出されるまで、サーバーに変更は送信されません。つまり、サーバーからの応答時間が遅い場合、更新がサーバーに送られる頻度は、このプロパティに指定した値よりも少なくなる可能性があります。



実装
    public function set fps(value:Number):void

objectEncoding

プロパティ 
objectEncoding:uint

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0, Flash Player 9, Flash Lite 4

この共有オブジェクトのオブジェクトエンコード(AMF バージョン)です。ローカル共有オブジェクトがディスクに書き込まれるとき、objectEncoding プロパティは、使用する必要のある Action Message Format バージョンを示します。ActionScript 3.0 フォーマット(AMF3)または ActionScript 1.0 または 2.0 フォーマット(AMF0)です。

オブジェクトエンコードは、共有オブジェクトがローカルかリモートかによって、処理方法が異なります。

  • ローカル共有オブジェクト。ローカル共有オブジェクトの objectEncoding プロパティの値を取得または設定できます。objectEncoding の値は、このローカル共有オブジェクトの書き込み に使用されるフォーマットに影響します。このローカル共有オブジェクトを ActionScript 2.0 または 1.0 SWF ファイルで読み込めなければならない場合は、objectEncodingObjectEncoding.AMF0 に設定します。オブジェクトエンコードが AMF3 を書き込むように設定されていても、Flash Player で AMF0 ローカル共有オブジェクトを読み込むことができます。つまり、このプロパティのデフォルト値(ObjectEncoding.AMF3)を使用すれば、ActionScript 2.0 または 1.0 SWF ファイルで作成した共有オブジェクトも引き続き SWF ファイルで読み込むことができます。
  • リモート共有オブジェクト。サーバーに接続されているときは、リモート共有オブジェクトは、関連付けられた NetConnection インスタンス(リモート共有オブジェクトへの接続に使用されるインスタンス)の objectEncoding 設定を継承します。サーバーに接続されていないときは、リモート共有オブジェクトは、関連付けされた NetConnection インスタンスから defaultObjectEncoding 設定を継承します。リモート共有オブジェクトの objectEncoding プロパティの値は NetConnection インスタンスにより決定されるため、このプロパティはリモート共有オブジェクトでは読み取り専用になります。



実装
    public function get objectEncoding():uint
    public function set objectEncoding(value:uint):void

例外
ReferenceError — リモート共有オブジェクトの objectEncoding プロパティの値を設定しようとしました。このプロパティは、関連付けられた NetConnection インスタンスにより値が決定されるため、リモート共有オブジェクトでは読み取り専用になります。

関連する API エレメント

    

preventBackup

プロパティ 
preventBackup:Boolean

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 3.7

ローカル共有オブジェクトが iOS のクラウドバックアップサービスでバックアップされるかどうかを指定します。

true または false を指定します。

  • true - すべてのローカル共有オブジェクトが iOSのバックアップクラウドサービスでバックアップされないようにします。
  • false(デフォルト) - ローカル共有オブジェクトが iOS のバックアップクラウドサービスでバックアップされます。

このプロパティは、ローカル共有オブジェクトのみに適用され、iOS にのみ使用できます。



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

size

プロパティ 
size:uint  [読み取り専用]

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0, Flash Player 9, Flash Lite 4

共有オブジェクトの現在のサイズ(バイト数)です。

すべてのデータプロパティを順に確認することによって、共有オブジェクトのサイズが計算されます。オブジェクトが持つデータプロパティが多いほど、サイズの計算に時間がかかります。オブジェクトのサイズを調べる処理は非常に時間がかかる場合があるので、特に必要がない限り、このメソッドの使用は避けてください。



実装
    public function get size():uint

例  ( この例の使用方法 )
次のコードは、ID "thehobbit" を使用して SharedObject オブジェクトを作成します。username というプロパティが、SharedObject オブジェクトのデータプロパティに追加されます。次に size プロパティがトレースされ、示されている値が返されます。
import flash.net.SharedObject;

// if these get copied or not
var mySo:SharedObject = SharedObject.getLocal("thehobbit");
mySo.data.username = "bilbobaggins";
trace(mySo.size); // 55
メソッドの詳細

clear

()メソッド
public function clear():void

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0, Flash Player 9, Flash Lite 4

ローカル共有オブジェクトの場合、すべてのデータを消去し、共有オブジェクトをディスクから削除します。共有オブジェクトへの参照はアクティブなままで、そのデータプロパティが削除されます。

Flash Media Server で使用されるリモート共有オブジェクトの場合、clear() はオブジェクトを切断し、すべてのデータを削除します。共有オブジェクトがローカルに永続化されている場合、このメソッドによって共有オブジェクトもディスクから削除されます。共有オブジェクトへの参照はアクティブなままで、そのデータプロパティが削除されます。


例  ( この例の使用方法 )

次のコードは、hostName の値を ID として使用して、SharedObject オブジェクトを作成(以降の実行では取得)します。username というプロパティが、SharedObject オブジェクトのデータプロパティに追加されます。最後に clear() メソッドが呼び出され、データオブジェクトに追加されたすべての情報(この場合は、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

()メソッド 
public function close():void

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0, Flash Player 9, Flash Lite 4

リモート共有オブジェクトとサーバーとの間の接続を閉じます。リモート共有オブジェクトがローカルに永続化されている場合、ユーザーはこのメソッドの呼び出し後に、オブジェクトのローカルコピーを変更できます。ローカルオブジェクトの変更は、次回にユーザーがリモート共有オブジェクトに接続したときに、サーバーに送られます。

connect

()メソッド 
public function connect(myConnection:NetConnection, params:String = null):void

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0, Flash Player 9, Flash Lite 4

指定した NetConnection オブジェクトを介して、サーバー上のリモート共有オブジェクトに接続します。このメソッドは、getRemote() を呼び出した後に使用します。接続に成功すると、sync イベントが送出されます。

リモート共有オブジェクトに対する操作を行う前に、try..catch..finally ステートメントを使用してエラーが発生していないかどうかを確認します。次に、sync イベントを監視して処理した後で、共有オブジェクトを変更します。sync イベントを送出する前にローカルで行った変更は失われる場合があります。

次の例は、connect() メソッドを呼び出して、リモート共有オブジェクトに接続します。

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

パラメーター

myConnection:NetConnection — Flash Media Server との通信に使用する NetConnection オブジェクトなど、RTMP(Real-Time Messaging Protocol)を使用する NetConnection オブジェクト。
 
params:String (default = null) — サーバー上のリモート共有オブジェクトに渡すメッセージを定義する文字列。Flash Media Server では使用できません。


例外
Error — Flash Player は、指定されたリモート共有オブジェクトに接続できません。NetConnection インスタンスが有効であり接続されていること、リモート共有オブジェクトがサーバーに正常に作成されたことを確認してください。

関連する API エレメント

flush

()メソッド 
public function flush(minDiskSpace:int = 0):String

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0, Flash Player 9, Flash Lite 4

ローカルに永続化された共有オブジェクトを直ちにローカルファイルに書き込みます。このメソッドを使用しない場合、共有オブジェクトがファイルに書き込まれるのは、共有オブジェクトセッションの終了時となります。つまり、SWF ファイルが閉じられるとき、共有オブジェクトが参照されなくなってガベージコレクションされるとき、SharedObject.clear() または SharedObject.close() が呼び出されたとき、のいずれかの時点です。

このメソッドが SharedObjectFlushStatus.PENDING を返した場合、このドメインからのオブジェクトを保存するためのディスク領域を増やすようユーザーに求めるダイアログボックスが表示されます。共有オブジェクトが保存されるときはそのための領域を大きくして PENDING が返されないようにするには、minDiskSpace に値を指定します。Flash Player は、ファイルを書き込む際、現在のサイズの共有オブジェクトを保存するのに必要な領域ではなく、minDiskSpace に指定されたバイト数を確認します。

例えば、共有オブジェクトのサイズが、最初は小さくても最大 500 バイトまで大きくなると予想される場合には、minDiskSpace に 500 を指定します。ユーザーに対して共有オブジェクトへのディスク領域の割り当てを求める際には、500 バイトの領域が要求されます。要求されたディスク領域をユーザーが割り当てた場合、それ以降、オブジェクトのサイズが 500 バイトを超えない限り、オブジェクトを保存する際に追加のディスク領域を要求されることはありません。

ユーザーがこのダイアログボックスに応答すると、このメソッドがもう一度呼び出されます。netStatus イベントが送出されます。このときの code プロパティは SharedObject.Flush.Success または SharedObject.Flush.Failed です。

パラメーター

minDiskSpace:int (default = 0) — このオブジェクトに割り当てる必要のある最小ディスク領域(バイト単位)です。

戻り値
String — 次のいずれかの値になります。
  • SharedObjectFlushStatus.PENDING:ユーザーはこのドメインからのオブジェクトに対してローカル情報記憶域を許可していますが、割り当てられた領域がオブジェクトを保存するのに十分でありません。Flash Player はユーザーに領域を増やすように要求します。共有オブジェクトを保存するときにそのオブジェクト用の領域を増加できるようにするには、SharedObjectFlushStatus.PENDING 戻り値を無効にして、minDiskSpace の値を渡します。
  • SharedObjectFlushStatus.FLUSHED:共有オブジェクトはローカルディスク上のファイルに正常に書き込まれました。

例外
Error — Flash Player は、共有オブジェクトをディスクに書き込むことができません。このエラーは、ユーザーがこのドメインからのオブジェクトに対して永続的にローカル情報を保存することを許可されていない場合に発生する可能性があります。

注意:サードパーティードメイン(現在のブラウザーのアドレスバーにあるドメイン以外のドメイン)の共有オブジェクトのディスクへの書き込みを許可していない場合でも、ローカルコンテンツでは、常にサードパーティードメインの共有オブジェクトをディスクに書き込むことができます。

関連する API エレメント


例  ( この例の使用方法 )

次のコードは、hostName の値を ID として使用して、SharedObject オブジェクトを作成(以降の実行では取得)します。username というプロパティが、SharedObject オブジェクトのデータプロパティに追加されます。flush() メソッドが呼び出された後、ストリング pending あるいはブール値の true または false が返されなかったかチェックされます。すべてのオープン SharedObject インスタンスは、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

()メソッド 
public static function getLocal(name:String, localPath:String = null, secure:Boolean = false):SharedObject

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0, Flash Player 9, Flash Lite 4

現在のクライアントだけが利用できるローカル永続共有オブジェクトへの参照を返します。共有オブジェクトがまだ存在しない場合は、このメソッドにより作成されます。getLocal() に渡された値が無効である場合、または呼び出しに失敗した場合、Flash Player は例外をスローします。

次のコードでは、返された共有オブジェクトの参照の変数への割り当て方法を示します。

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

注意:ユーザーがこのドメイン用のローカル記憶域を許可していない場合は、localPath の値が指定されていても、オブジェクトはローカルに保存されません。ただし、ローカルコンテンツは例外です。サードパーティードメイン(現在のブラウザーのアドレスバーにあるドメイン以外のドメイン)の共有オブジェクトのディスクへの書き込みを許可していない場合でも、ローカルコンテンツでは、常にサードパーティードメインの共有オブジェクトをディスクに書き込むことができます。

名前のコンフリクトを避けるために、共有オブジェクトを作成している SWF ファイルの位置が考慮されます。例えば、www.myCompany.com/apps/stockwatcher.swf にある SWF ファイルが portfolio という名前の共有オブジェクトを作成した場合、この共有オブジェクトは、www.yourCompany.com/photoshoot.swf にある SWF ファイルが作成した portfolio という別のオブジェクトとは競合しません。これは、この 2 つの SWF ファイルが異なるディレクトリに置かれているからです。

localPath パラメーターはオプションですが、慎重に使用する必要があります。特に、他の SWF ファイルが共有オブジェクトにアクセスしなければならない場合には注意してください。共有オブジェクトのデータが、別の場所に移動されない 1 つの SWF ファイルに固有のものである場合は、デフォルト値を使用することをお勧めします。他の SWF ファイルが共有オブジェクトにアクセスする必要がある場合、または共有オブジェクトを作成する SWF ファイルを後で移動する場合には、このパラメーターの値により、共有オブジェクトへのアクセスに影響が生じます。例えば、localPath をデフォルト値である SWF ファイルの完全パスに設定して共有オブジェクトを作成すると、他の SWF ファイルはその共有オブジェクトにアクセスできません。元の SWF ファイルを後で別の場所に移動すると、その SWF ファイルからも、共有オブジェクトに格納されているデータにアクセスできなくなります。

共有オブジェクトへのアクセスを誤って制限してしまうのを避けるには、localpath パラメーターを使用します。最も制限の緩やかな方法は、localPath/(スラッシュ)に設定する方法です。ドメインのすべての SWF ファイルが共有オブジェクトを利用できますが、ドメイン内の他の共有オブジェクトとの名前のコンフリクトが起こりやすくなります。より制限の厳しい方法は、localPath に SWF ファイルへの完全パス内のフォルダー名を付加する方法です。例えば、www.myCompany.com/apps/stockwatcher.swf にある SWF ファイルで作成された portfolio 共有オブジェクトの場合は、localPath パラメーターを //apps、または /apps/stockwatcher.swf に設定できます。アプリケーションに最適な柔軟性を提供できる方法がどれかを判断する必要があります。

このメソッドを使用するときは、次のセキュリティモデルを考慮してください。

  • サンドボックスの境界を越えて共有オブジェクトにアクセスすることはできません。
  • Flash Player の設定ダイアログボックスまたは設定マネージャーを使用して、共有オブジェクトへのアクセスを制限できます。デフォルトでは、アプリケーションでドメインごとに最大 100 KB の共有オブジェクトを作成できます。管理者および一般ユーザーは、ファイルシステムへの書き込み機能に制限を適用することもできます。

ローカルファイル(ローカルにインストールされた SWF ファイルまたは EXE ファイル)として再生する SWF ファイルコンテンツをパブリッシュし、複数のローカル SWF ファイルから特定の共有オブジェクトにアクセスする必要があるとします。この状況では、ローカルファイルでは共有オブジェクトの保存に 2 つの異なる場所が使用されることがあるので注意してください。使用されるドメインは、共有オブジェクトを作成したローカルファイルに付与されるセキュリティ許可によって変わります。ローカルファイルには、次の 3 つの異なる許可レベルを設定できます。

  1. ローカルファイルシステムのみに対するアクセス
  2. ネットワークのみに対するアクセス
  3. ネットワークとローカルファイルシステムの両方に対するアクセス

ローカルファイルシステムへのアクセス権を持つローカルファイル(レベル 1 または 3)は、共有オブジェクトを 1 つの場所に格納します。ローカルファイルシステムへのアクセス権を持たないローカルファイル(レベル 2)は、共有オブジェクトを別の場所に格納します。

SWF ファイルがこのメソッドを使用しないようにするには、SWF コンテンツを含んでいる HTML ページに allowNetworking パラメーター(object タグおよび embed タグのパラメーター)を設定します。

詳細については、Flash Player デベロッパーセンターのトピック:セキュリティを参照してください。

パラメーター

name:String — オブジェクト名です。名前にはスラッシュ(/)を含めます。例えば、work/addresses は有効な名前です。共有オブジェクト名にスペース、および以下の文字を含めることはできません。
  ~ % & \ ; : " ' , < > ? # 
  
 
localPath:String (default = null) — 共有オブジェクトを作成した SWF ファイルの完全パスまたは部分パスです。これによって、共有オブジェクトをローカルに保存する場所が決まります。このパラメーターを指定しない場合は、完全パスが使用されます。
 
secure:Boolean (default = false) — この共有オブジェクトへのアクセスが HTTPS 接続経由で配布された SWF ファイルに限定されているかどうかを判別します。SWF ファイルが HTTPS 接続経由で配信されている場合、このパラメーターの値には次の効果があります。
  • このパラメーターを true に設定すると、Flash Player は新しいセキュアな共有オブジェクトを作成するか、既存のセキュアな共有オブジェクトの参照を取得します。このセキュアな共有オブジェクトに対する読み取りまたは書き込みは、HTTPS で配信された SWF ファイルによってのみ行えます。このとき SWF ファイルは SharedObject.getLocal() を、secure パラメーターを true に設定して呼び出します。
  • このパラメーターが false に設定されている場合、Flash Player は共有オブジェクトを新しく作成するか、または HTTPS 以外の接続で配信された SWF ファイルから読み込みまたは書き込みのできる既存の共有オブジェクトに対する参照を取得します。

SWF ファイルが HTTPS 以外の接続で配信された場合、このパラメーターを true に設定しようとすると、新しい共有オブジェクトの作成(または作成済みのセキュアな共有オブジェクトへのアクセス)は失敗し、null が返されます。このパラメーターの値にかかわらず、作成された共有オブジェクトには、当該ドメインで使用可能な合計ディスク容量の枠が適用されます。

次の図に、secure パラメーターの使用方法を示します。

セキュアな共有オブジェクトの図

戻り値
SharedObject — ローカルに永続化され、現在のクライアントでのみ利用できる共有オブジェクトへの参照です。共有オブジェクトを作成できない場合、または共有オブジェクトが見つからない場合(localPath に指定したディレクトリが存在しない場合など)、このメソッドは例外をスローします。

例外
Error — Flash Player は、何らかの理由で共有オブジェクトを作成できません。サードパーティーの Flash コンテンツによる永続共有オブジェクトの作成と保存が禁止されている(ローカルコンテンツに適用されない)場合、このエラーが発生することがあります。ユーザーは、http://www.adobe.com/support/documentation/jp/flashplayer/help/settings_manager03.html にある設定マネージャーのグローバルストレージ設定パネルでサードパーティーの永続共有オブジェクトを禁止できます。

getRemote

()メソッド 
public static function getRemote(name:String, remotePath:String = null, persistence:Object = false, secure:Boolean = false):SharedObject

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0, Flash Player 9, Flash Lite 4

複数のクライアントがアクセスできる、Flash Media Server 上の共有オブジェクトへの参照が返されます。リモート共有オブジェクトがまだ存在しない場合は、このメソッドにより作成されます。

次に示すように、リモート共有オブジェクトを作成するために getRemote() を呼び出し、connect() を呼び出してリモート共有オブジェクトをサーバーに接続します。

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

共有オブジェクトのローカルおよびリモートコピーを同期させるには、sync イベントを監視して処理します。このオブジェクトを共有するすべてのクライアントは、name パラメーターと remotePath パラメーターに同じ値を渡す必要があります。

現在のクライアントでのみ利用できる共有オブジェクトを作成するには、SharedObject.getLocal() を使用します。

パラメーター

name:String — リモート共有オブジェクトの名前です。名前にはスラッシュ(/)を含めることができます。例えば、work/addresses は有効な名前です。共有オブジェクト名にスペース、および以下の文字を含めることはできません。
    ~ % & \ ; :  " ' , > ? ? #
 
remotePath:String (default = null) — 共有オブジェクトが保存されるサーバーの URIです。この URI は、connect() メソッドに渡された NetConnection オブジェクトの URI と同一である必要があります。
 
persistence:Object (default = false) — 共有オブジェクトのデータプロパティの属性が、どこで永続的になっているか(ローカル、リモート、またはその両方)を指定します。このパラメーターでは、共有オブジェクトをローカルで保存する場合の場所も指定できます。有効な値は次のとおりです。
  • false 値は、共有オブジェクトがクライアントまたはサーバーで永続的ではないことを指定します。
  • true 値は、共有オブジェクトがサーバー上のみで永続的であることを指定します。
  • 共有オブジェクトへのローカルの完全パスまたは部分パスは、共有オブジェクトがクライアントとサーバー上で永続的であることを示します。クライアントでは、共有オブジェクトは指定されたパスに保存されます。サーバー上では、アプリケーションディレクトリ内のサブディレクトリに保存されます。

注意:ユーザーがこのドメイン用のローカル記憶域を許可していない場合は、永続性のローカルパスが指定されていても、オブジェクトはローカルに保存されません。詳細については、クラスの説明を参照してください。

 
secure:Boolean (default = false) — この共有オブジェクトへのアクセスが HTTPS 接続経由で配布された SWF ファイルに限定されているかどうかを判別します。詳細については、secure パラメーター(getLocal メソッドエントリ)の説明を参照してください。

戻り値
SharedObject — 複数クライアントでの共有ができるオブジェクトへの参照です。

例外
Error — Flash Player は、共有オブジェクトを作成できません、または見つけられません。これは、remotePath パラメーターと persistence パラメーターに、存在しないパスが指定されていると起こることがあります。

関連する API エレメント

send

()メソッド 
public function send(... arguments):void

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0, Flash Player 9, Flash Lite 4

リモート共有オブジェクトに接続しているすべてのクライアント(メッセージを送信したクライアントも含む)に、メッセージをブロードキャストします。メッセージを処理して応答するには、共有オブジェクトに関連付けるコールバック関数を作成します。

パラメーター

... arguments — 複数の引数:メッセージを識別するストリング、共有オブジェクトに割り当てる複数のハンドラー関数名、および任意のデータ型のオプションのパラメーターです。ハンドラー名の深さは 1 レベルのみで(つまり、親子形式を取ることができません)、共有オブジェクトに相対します。引数は直列化され、接続を介して送信されます。受信側のハンドラーは同じ順番でそれらの引数を受け取ります。パラメーターが循環オブジェクト(循環するリンクされたリストなど)である場合、シリアライザは参照を正しく処理します。

注意:関数名には予約語を使用しないでください。例えば、myRemoteSO.send("close") は失敗します。

setDirty

()メソッド 
public function setDirty(propertyName:String):void

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0, Flash Player 9, Flash Lite 4

共有オブジェクトのプロパティの値が変更されたことをサーバーに通知します。このメソッドは、変更されたことを示す dirty としてプロパティをマークします。

SharedObject.setProperty() を呼び出して、共有オブジェクトのプロパティを作成します。

SharedObject.setProperty() メソッドは、setDirty() を実装します。ほとんどの場合、例えばプロパティの値がストリングや数値のようなプリミティブ型のときは、setProperty() を呼び出すことが可能で、setDirty() を呼び出す必要はありません。ただし、プロパティの値が独自のプロパティを持つオブジェクトである場合は、setDirty() を呼び出してオブジェクト内の値が変更された日時を示します。

パラメーター

propertyName:String — 変更されたプロパティの名前です。

関連する API エレメント

setProperty

()メソッド 
public function setProperty(propertyName:String, value:Object = null):void

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0, Flash Player 9, Flash Lite 4

共有オブジェクトのプロパティの値を更新し、プロパティの値が変更されたことをサーバーに通知します。setProperty() メソッドは、プロパティを changed または dirty として明示的にマークします。

リモート共有オブジェクトの詳細については、Flash Media Server のマニュアルを参照してください。

注意:SharedObject.setProperty() メソッドには、setDirty() メソッドが実装されています。ほとんどの場合、例えばプロパティの値がストリングや数値のようなプリミティブ型のときは、setProperty() を使用し、setDirty を使用することはありません。ただし、プロパティの値が独自のプロパティを持つオブジェクトである場合は、setDirty() を使用してオブジェクト内の値が変更された日時を示します。一般的には、setProperty() を呼び出して、setDirty() は使用しないことをお勧めします。setProperty() は値が変更されたときだけプロパティ値を更新しますが、setDirty() はサブスクライブしているすべてのクライアントを強制的に同期させるからです。

パラメーター

propertyName:String — 共有オブジェクトのプロパティの名前です。
 
value:Object (default = null) — プロパティの値(ActionScript オブジェクト)です。プロパティを削除する場合は null を指定します。

関連する API エレメント

イベントの詳細

asyncError

イベント
イベントオブジェクトの型: flash.events.AsyncErrorEvent
プロパティ AsyncErrorEvent.type = flash.events.AsyncErrorEvent.ASYNC_ERROR

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0, Flash Player 9, Flash Lite 4

非同期形式で、つまりネイティブ非同期コードから例外がスローされると送出されます。

AsyncErrorEvent.ASYNC_ERROR 定数は、type プロパティ(asyncError イベントオブジェクト)の値を定義します。

このイベントには、次のプロパティがあります。

プロパティ
bubblesfalse
cancelablefalse は、キャンセルするデフォルトの動作がないことを示します。
currentTargetイベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。
targetイベントを送出するオブジェクトです。
errorイベントをトリガーしたエラーです。

netStatus

イベント  
イベントオブジェクトの型: flash.events.NetStatusEvent
プロパティ NetStatusEvent.type = flash.events.NetStatusEvent.NET_STATUS

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0, Flash Player 9, Flash Lite 4

SharedObject インスタンスが、そのステータスまたはエラーの状況をレポートするときに送出されます。netStatus イベントには、info プロパティが含まれます。このプロパティは、接続試行が成功したかどうかや共有オブジェクトのローカルディスクへの書き込みが成功したかどうかなど、イベントに関する特定の情報を含む情報オブジェクトです。

type プロパティ(netStatus イベントオブジェクト)の値を定義します。

このイベントには、次のプロパティがあります。

プロパティ
bubblesfalse
cancelablefalse は、キャンセルするデフォルトの動作がないことを示します。
currentTargetイベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。
infoオブジェクトのステータスまたはエラー状態を記述するプロパティを持つオブジェクトです。
targetそのステータスを報告する NetConnection または NetStream オブジェクトです。

関連する API エレメント

sync

イベント  
イベントオブジェクトの型: flash.events.SyncEvent
プロパティ SyncEvent.type = flash.events.SyncEvent.SYNC

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0, Flash Player 9, Flash Lite 4

リモート共有オブジェクトがサーバーによって更新されるときに送出されます。

type プロパティ(sync イベントオブジェクト)の値を定義します。

このイベントには、次のプロパティがあります。

プロパティ
bubblesfalse
cancelablefalse は、キャンセルするデフォルトの動作がないことを示します。
currentTargetイベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。
changeList配列のステータスを記述するプロパティを持つ配列です。
targetサーバーによって更新された SharedObject インスタンスです。

関連する API エレメント

SharedObjectExample.as

次のコードは、ID "application-name" を使用して、共有オブジェクトを作成(以降の実行では取得)します。「保存」ボタンがクリックされると、saveValue() メソッドが savedValue というプロパティを SharedObject オブジェクトの data プロパティに保存しようとします。Flash Player がデータを保存する許可を求める必要がある場合、ユーザーが許可を与えるか拒否すると、onFlushStatus() メソッドが呼び出されます。「クリア」ボタンがクリックされると、clearValue() メソッドが savedValue に保存された値を削除します。次に SWF ファイルがロードされたときに取得される値は、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 ]英語で表示される理由
ActionScript 3.0 リファレンスガイドのコンテンツが英語で表示されます。

ActionScript 3.0 リファレンスガイドのすべての部分がすべての言語に翻訳されているわけではありません。言語エレメントが翻訳されていない場合、そのエレメントは英語で表示されます。例えば、ga.controls.HelpBox クラスはどの言語にも訳されていません。このため、リファレンスガイドの日本語バージョンでは、ga.controls.HelpBox クラスは英語で表示されます。