• ベストアンサー

Flashゲームのセーブ機能の作り方

こんにちは。 今、Flash8を使ってアドベンチャーゲームを作っています。 ゲームの内容が長めなので、ゲーム内の1日ごとにセーブポイントを設けようかと思っているのですが、調べてみてもいまいちよくわからなくて困っています。SharedObjectを使うのはわかったんですが・・・ 1、「セーブする」ボタンで現在のタイムライン位置と、変数とその値を保存する。 2、「続きから」ボタンで保存した変数とその値を呼び出し、前回セーブしたところへジャンプする。 アクションスクリプトに詳しい方ご回答よろしくお願いします。 現在使用してるOSはWindowsXPです。

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

  • ベストアンサー
  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.1

_root(メインムービーのタイムライン)の直下に, 「continue_btn」と「save_btn」というインスタンス名を付けたボタンがあった場合,  _root    ├ continue_btn(続きからボタン)    └ save_btn(セーブボタン) _root の フレーム1 とかその辺りのフレームのキーフレームに, 次のようなスクリプトを書けば良いと思います。 ----------------------------------------- // とりあえず _root の再生を停止 _root.stop(); // SharedObject my_so を作成し saveData データを得る var my_so:SharedObject = SharedObject.getLocal("saveData"); // 「続きから」ボタン continue_btn クリック時の動作定義 continue_btn.onRelease = function() { // もし my_so 内データの frame_num 存在していなければ if (my_so.data.frame_num == undefined) { // _root を フレーム2 から再生 _root.gotoAndPlay(2); } else { // _root を my_so 内データの frame_num から再生 _root.gotoAndPlay(my_so.data.frame_num); // --- // my_so 内データの frame_num の値を出力(検証用) trace("前回セーブしたフレーム番号="+my_so.data.frame_num); // my_so 内データの hensuu の値を出力(検証用) trace("前回セーブした適当な値="+my_so.data.hensuu); } }; // 「セーブする」ボタン save_btn クリック時の動作定義 save_btn.onRelease = function() { //(_root の再生を停止(要不要は不知) ) _root.stop(); // my_so 内データの frame_num に _root の現在フレームを保存 my_so.data.frame_num = _root._currentframe; // my_so 内データの hensuu に適当な値を保存 my_so.data.hensuu = Math.floor(Math.random()*100); // --- // my_so 内データの frame_num の値を出力(検証用) trace("今回セーブしたフレーム番号="+my_so.data.frame_num); // my_so 内データの hensuu の値を出力(検証用) trace("今回セーブした適当な値="+my_so.data.hensuu); }; -----------------------------------------  

hisako1986
質問者

お礼

とてもわかりやすいご回答ありがとうございます!助かりました^^

関連するQ&A