イントロダクション

 

Shared Object は Flash Communication Server を通じて接続されている複数のムービーやオブジェクト間で、リアルタイムにデータを共有できる非常に便利なオブジェクトです。その中でもローカルで使用されるローカル共有オブジェクトは、SharedObject オブジェクトの活用として最も単純なもので、Flash Communication Server は必須ではありません。その機能についてここでは紹介させていただきます。Shared Object は様々な用途がありますが、この文書では基本的なコンセプトを 通して Shared Object を紹介します。Shared Object の用途にはユーザーのスコア (点数) や好きな色、また最後に表示したページなどを記録する、といったことも含まれます。以下で紹介する例では Shared Object の機能を使って、ユーザーが入力した名前とページを表示した回数を記録するものです。



Shared Object は、web ブラウザで作成されたクッキーにデータが蓄積されるのと同様、クライアントマシン上にデータを保存するために使用するものです。データは Shared Object を作成したドメインと同じドメインを拠点としたムービーによってのみ読み込まれるもので、Macromedia Flash Playerがユーザーのマシンにデータの書き込みをする唯一の方法です。Shared Object を使用しても、ユーザーが供給しない限り、ユーザーの電子メールアドレスや個人情報を記録しておくことは出来ません。セキュリティに関する情報は以下の Security white paper * (PDF 716K) を参照してください。



Shared Object のデモを参照するには以下の作業を行ってください。

  1. Step 2 に進む前に、Macromedia Flash Player 6 が必ずインストールされていることを確認します。



    メモ: Flash Player のバージョン確認はこちらのテストページをご参照ください。
  2. 以下の Flash ムービーのテキストフィールドにテキストを入力します。
  3. ブラウザの更新または再読み込みボタンをクリックし、表示回数が更新されるか確認します。
  4. ムービー内のリセットボタンをクリックすると Shared Object に保存された値がリセットされます。



    Windows ソースファイルのダウンロード local_so.zip (22K)

    Macintosh ソースファイルのダウンロード local_so.sit (24K)

 

Shared Object を使用方法

 

  1. Shared Object の作成
  • Shared Object の getLocal メソッドを使用して Shared Object を作成します。 サンプルのムービーでは変数 (myLocalSO) を作成し、以下の ActionScript で「flashcookie」という名前の Shared Object が割り当てられています。



    //ローカル Shared Object を作成する

    myLocalSO = sharedobject.getLocal("flashcookie");



    「flashcookie」という Shared Object がない場合は、Macromedia Flash Player によってその名前の Shared Object が作成されます。



    メモ: Shared Object の名前は、文書番号 228649 Flash での命名術に沿っている必要があります。また、Shared Object の名前には半角英字を使用します。
  • getLocal メソッドでは localPath というパラメータのオプションを指定することが出来ます。この localPath パラメータによって、クライアントマシンのどこに Shared Object が保存されるのか制御することになります。このパスは SWF が保存 され ている URL と同じ、またはその URL 内になければなりません。したがって、クライアントマシン上の Shared Object を作成するムービーが http://www.mydomain.com/movies/mymovie.swf にある場合、localPath パラメータは http://www.mydomain.com/movies/mymovie.swf、/、/movies、 /movies/mymovie.swf といったように設定されていなければなりません。コードは以下のようになります。



    myLocalSO = sharedobject.getLocal("flashcookie", "/movies/mymovie.swf");



    これは、サイト内で複数のローカル Shared Object が存在する場合に便利です。例えば、あるドメインの全ムービーからルートレベル (localPath を「/」と設定する)に作成された Shared Object に保存されたユーザー名にアクセスできますが、一方で個別のムービーに特化した個人情報は、localPath パラメータがそのムービーに特定している (localPath が「/movies/mymovie.swf」に設定されている) Shared Object に保存されます。
  1. Shared Object の値を設定する

    Shared Object のデータプロパティに属性を割り当てることによって、Shared Object 内に情報が保存されます。上記のムービーではテキストフィールドに入力されたユーザー名は、ローカル Shared Object のデータプロパティにネーム属性を割り当て、以下のようにテキストフィールドのコンテンツとして設定することによって Shared Object に保存されています。



    //変数「name」がテキストフィールド「userName」のテキストプロパティ

    myLocalSO.data.name = userName.text;



    //再表示するたびにカウンターの値を1ずつ増加する

    myLocalSO.data.counter++;



    データは Macromedia Flash Player からムービーが外される時に Shared Object に書き込まれます。データを即時に書き込むには以下のようにflushメソッドを使用します。



    myLocalSO.flush();
  2. Shared Object の値を返す

    ユーザーがページを再表示すると、Shared Object が読み込まれ、その値が表示され ます。



    userName.text = myLocalSO.data.name;

    numVisits.text = "You have been here " + myLocalSO.data.counter + "times."



    クライアントマシンには Shared Object「flashcookie」がすでに作成されているので、myLocalSO = sharedobject.getLocal("flashcookie"); によってShared Object からデータが取得され、ユーザー名とページを表示した回数が表示されます。

 

追加情報

 

この文書は、米国 Adobe Systems, Inc. の What is a local Shared Object? (TechNote 16194) をもとに作成されました。

 

本作品は Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License によってライセンス許可を受けています。  Twitter™ および Facebook の投稿には、Creative Commons の規約内容は適用されません。

法律上の注意   |   プライバシーポリシー