• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:SharedObjectの動作がうまくいかない。)

SharedObjectの動作がうまくいかない

このQ&Aのポイント
  • SharedObjectを使用してボタンの状態を保存し、次回アクセス時に反映されるようにしましたが、正常に動作しません。
  • スクリプトの中でSharedObjectを呼び出していますが、初回アクセス時の補正処理が正しく行われていないようです。
  • シェアードオブジェクトからデータを取得し、クリックされた結果をローカルに保存する処理は正常に動作しているようです。

質問者が選んだベストアンサー

  • ベストアンサー
noname#35109
noname#35109
回答No.1

明らかにパスがずれていますけど… ------------------------------ //ここに現在のロード時の状態を呼び出す onClipEvent (load) { //シェアードオブジェクトの呼び出し mySO = SharedObject.getLocal("topmusic","/"); _root.music = mySO.data.state; //初アクセス時の補正 if (mySO.data.state == null) { mySO = SharedObject.getLocal("topmusic","/"); mySO.data.state = 1; mySO.flush(); _root.music = 1; } } //クリックされた時にオン・オフを切り替える on (release) { _root.music = _root.music*(-1); //フラグ反転 //クリックされた結果をローカルに保存する。 mySO = SharedObject.getLocal("topmusic","/"); mySO.data.state = _root.music; mySO.flush(); } ------------------------------ これでうまく行きました。 SharedObject.getLocal("topmusic","/"); で統一するか SharedObject.getLocal("topmusic"); で統一しないと, 最初に get してくる場所と保存の場所が違います。 また,最後の ------------------------------ //フラグ反転 //クリックされた結果をローカルに保存する。 mySO = SharedObject.getLocal("topmusic","/"); mySO.data.state = _root.music; mySO.flush(); } ------------------------------ はどこに書いてあるのかわかりませんでしたので, on (release) の中に入れました。 solファイルは Windows の場合, C:\Documents and Settings\ユーザ名\Application Data\Macromedia\Flash Player 内のどこかに保存されます。 ローカルPCでしか実験しませんでしたが, "/" があるのとないのとでは,全然違う場所に保存されましたよ。 どこにあるかは PC や,SWFの置き場所によって変わるので, 「topmusic」を検索して探してみてください。

pochitarou
質問者

お礼

おおお!そんなところに原因が・・・。やはり基本がわかっていないとこういうミスをしてしまう物でしょうか。おかげでうまく動作いたしました。 どうもありがとうございます。

すると、全ての回答が全文表示されます。

関連するQ&A