- ベストアンサー
ローカル共有オブジェクトの使い方
- ActionScript2.0でウェブを開発中です。ローカル共有オブジェクトを使い、保存したファイルを別のファイルで読み込もうとしていますが、上手くいきません。
- a.swfで生成したローカル共有オブジェクトは読み込めるのですが、b.swfでは読み込むことができません。仕様に問題があるのでしょうか?
- ローカル共有オブジェクトを使ったウェブ開発中に、ファイルの保存と読み込みの問題が発生しています。b.swfでローカル共有オブジェクトを取得する際にエラーが発生しています。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
> my_so = SharedObject.getLocal("so1") "so1" 1つでは共有できません。 solファイル のローカルファイルパスが抜けています。 「FN0204003 - SharedObject.getLocal() - Flash テクニカルノート」 http://www.fumiononaka.com/TechNotes/Flash/FN0204003.html パスに関しては上記ページに書いてありますが, ごちゃごちゃ考えるのが面倒な場合は, サイトのrootディレクトリに対応するローカルディレクトリに sol ファイルを保存するようにすれば簡単です。 と言っても難しく考えずに, "/" を第2引数に加えれば良いだけですが。 (その場合,なるべくユニークな(他とかぶらないような)名前の方が良いです。) ◎簡易スクリプト例 ---「a.fla(a.swf)」------------------------- my_so = SharedObject.getLocal("so1", "/"); my_so.data.date = "今10時です"; my_so.flush(); ---------------------------------------- ---「b.fla(b.swf)」------------------------- my_so = SharedObject.getLocal("so1", "/"); trace("my_so.data.date="+my_so.data.date); ---------------------------------------- 「a.swf」を開いた後に「b.swf」をムービープレビューすると結果が出力されます。 ======================= 上でも少し書きましたが, ローカルPCの solファイル 格納専用場所のサイトやローカルフォルダのSWFに応じたフォルダに solファイル ができます。 私の場合(Windowsの場合)は次のような場所です。 C:\Documents and Settings\ユーザ名\Application Data\Macromedia\Flash Player\#SharedObjects\○○\××\~~ パスを書かない場合はその場所の「a.swf」対応フォルダの中に solファイル ができます。 そこはファイルごとの格納場所ですから共有できません。 パスを書くと「a.swf」対応フォルダより上のフォルダに solファイル を保存することができます。 そこが「a.swf」と「b.swf」の両者の親元であれば,共有できるということになります。 Webサイト上の SWF を閲覧する場合は,ドメイン名ごとにフォルダができます。 (例:Adobe サイト だと「adobe.com」フォルダ ができる) そのドメイン名フォルダよりも上の階層に solファイル を保存することはできません。 my_so = SharedObject.getLocal("so1", "/"); と書いた場合は,ドメイン名フォルダの直下に 「so1.sol」 ファイルができます。 そのドメイン名フォルダの直下を利用するとごちゃごちゃ考えずに簡単にできますということを上に書いたわけです。 ただし,別用途の sol を同じフォルダに置いた場合, 名前を同にすると競合問題が発生するので,ユニーク(他とかぶらないような)な名前が良いです。
お礼
ありがとうございます。 よくわかりました。 本当に助かりました。