マンガでよめる痔のこと・薬のこと

一度設定したボタンの状態をSharedObjectで保存して、次にアクセスした時に反映されるようにしたのですが、うまく動作しません。スクリプトは下記の通りです。

//ここに現在のロード時の状態を呼び出す
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();
}

=====================
以上はメインタイムライン上に配置されたムービークリップ(button)に記述したスクリプトです。

ローカルには新しくファイルが作成されているので、何がしかの処理はされているようです。
もしかして、ローカル保存した

このQ&Aに関連する最新のQ&A

A 回答 (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」を検索して探してみてください。
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/01/16 09:57

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング