サイトトップ

Director Flash 書籍 業務内容 プロフィール

Macromedia Flash非公式テクニカルノート

SharedObject.getLocal

ID: FN0204003 Product: Flash

Platform: All
Version: MX and above

シンタックス
SharedObject.getLocal(オブジェクト名 [, ローカルパス])

引数
オブジェクト名  オブジェクトの名前を指定する文字列。名前にはパス区切りのスラッシュ(/)を使用することができます。たとえば、"TechNotes/Flash"という指定が可能です。SharedObjectの名前は、半角英数文字で指定します。使用できない記号は、「~」「%」「&」「�」「;」「:」「"」「'」「<」「>」「?」「#」です。

ローカルパス  オプションの引数となるファイルの保存先パスを指定する文字列。SharedObjectを生成したSWFファイルの、完全または部分パスを指定します。このストリングを使って、オブジェクトがユーザーのコンピュータのどこに保存されているかを指定します。デフォルト値は、SWFの完全パスです。

戻り値
ローカルに保持されているSharedObjectの参照。指定した名前のSharedObject(.sol)ファイルが存在しないときは、データを保存するためのインスタンスを新たに作成します。指定したローカルパスが無効の場合には、nullが返されます。

説明
メソッド; SharedObjectデータを指定のローカルパスに保存し、あるいは読込むためのSharedObjectインスタンスの参照を返します。オブジェクトは、現在のクライアントのみが使用できます。

名前の競合を避けるために、FlashはSharedObjectを作成したムービーの場所を確認します。たとえば、"www.FumioNonaka.com/Sample/SharedObject.swf"のムービーが、"myData"という名前のSharedObjectを作成したとします。このSharedObjectは、"myData"という同じ名前であっても、"www.FumioNonaka.com/Sample.swf"のムービーがつくったオブジェクトとは競合しません。けれども、異なったムービーが同じディレクトリに存在し、同じ名前のオブジェクトを同じ[ローカルパス]を指定して作成すると、名前の重複が発生します。そして、一方のオブジェクトが、他方を警告なしに書替えることになります。

引数[ローカルパス]を使うと、SharedObjectをどこに保存するかを指定することができます。同一ホストの複数のムービーは、同じ場所のオブジェクトが指定されると、同じSharedObjectのデータにアクセスすることができます。たとえば、"www.FumioNonaka.com/a/b/c/d/movie1.swf"と"www.FumioNonaka.com/a/b/movie2.swf"が、あるとします(2つのムービーは、同じホストの異なるディレクトリにあります)。

"movie1.swf"は、[ローカルパス]として以下の値を指定できます。

"/"
"/a/"
"/a/b/"
"/a/b/c/"
"/a/b/c/d/"
"/a/b/c/d/movie1.swf/" (これは、[ローカルパス]の指定がない場合のデフォルト値です)

同様に、"movie2.swf"は、[ローカルパス]に以下の値を指定することができます。

"/"
"/a/"
"/a/b/"
"/a/b/movie2.swf/" (これは、[ローカルパス]の指定がない場合のデフォルト値です)

したがって、2つのムービーから同じSharedObjectにアクセスする必要があるときには、両方のムービーが使用できる[ローカルパス]を指定します。この例の場合には、以下のいずれかになります。

"/"
"/a/"
"/a/b/"

いずれの場合も、[ローカルパス]にホスト名("www.FumioNonaka.com")は含めません。


以下のサンプルは、ローカルのSharedObject"myData"に保存されていたデータを読込んで、ユーザー名を変数に設定し、フレームに移動します。

// SharedObjectの読込み
oSharedObject = SharedObject.getLocal("myData");
// データに保存されていたユーザー名を変数に設定し、フレームに移動
if (oSharedObject.data.user != undefined) {
  this.user = oSharedObject.data.user;
  this.goToAndStop(oSharedObject.data.frame);
}

// 現行フレーム番号とテキストフィールドに入力されたユーザー名をSharedObjectに設定するユーザー定義'function'
function xRememberMe() {
  oSharedObject.data.frame = this._currentframe;
  oSharedObject.data.user = Field_txt.text;
}

Player
Flash Player 6以降。

関連項目
SharedObject.data

_____

作成者: 野中文雄
更新日: 2005年5月31日「戻り値」の項目その他に若干の加筆・補正。レイアウトの修正。
作成日: 2002年4月9日


Copyright © 2001-2006 Fumio Nonaka.  All rights reserved.