(BACK)

11/5/2 ver2.66で追加された機能の記述
セレクタモード説明
他のswfファイルからサリング本体(crs.swf)を呼び出して実行させる事が出来る。これをセレクタモードと呼び、その外部のswfファイルをセレクタと呼ぶ。
バージョン3.00以上のサリング本体が必要である。
可能な限り最新の本体を使うこと。

リストモード、エキスパートモードでは使えない。

セレクタ作成上の注意
主な仕様は以下である。
・ファイル名は、crssel.swf
・40fps、SWF6
・大きさは自由であり、セレクタの大きさと呼び出したサリングの大きさは同じになる。標準では400x400であり、縦1:横1の対比を守る事を推奨する。
・セレクタに背景色があると、サリングにも影響する。

ファイルの場所
各ファイルは以下のように置く必要がある。
crs.swf     サリング本体
crssel.swf  セレクタ本体
セレクタ表示用html(サリングのゲーム表示用と同じでよい)

ディレクトリ:(ゲーム名)
      +-- data.txt
      +-- bgm.mp3
      +-- その他背景、追加音のファイル

ディレクトリ:(ゲーム名)
      +-- data.txt
      +-- bgm.mp3
      +-- その他背景、追加音のファイル

         :
         :
まずcrs.swfとcrssel.swfを置き、ゲームはcrs.swfではなくcrssel.swfを表示して開始する。
プレイ可能なひとつのゲームごとに「ゲーム名」を決め、その名前のディレクトリの中に、ゲームに必要なdata.txt、bgm.mp3、その他のファイルを入れる。

ゲーム名は何でも良いが、半角アルファベットと数字だけを使う事が望ましい。

セレクタ表示htmlのサンプル(右クリック保存、拡張子をhtmlに変更すること

呼び出し方法
セレクタからサリングを呼び出すには、以下のようにgetURL関数を使う。
ゲーム名を引数として渡すことで、使用するゲームを指定する。
ここではゲーム名を「chanvala」とする。
_root.getURL("crs.swf?gamename=chanvala","_level0");
「chanvala」というディレクトリの中のdata.txtとbgm.mp3を使ってゲームを開始する。

セレクタに戻る
セレクタモードでは、タイトル画面の左上に、セレクタに戻るためのボタンが表示される。

これを押すと、crs.swfの実行を終了し、crssel.swfを読み込んで実行する。


データの保存
セレクタモードでは、自動的に共有オブジェクト(SharedObject)に様々な情報が保存される。
具体的にはタイトルが表示されるたびに保存される。

これらの内容は、サリング本体(crs.swf)を起動するたびに全て消去される
セレクタから呼び出され、またセレクタに戻るまでのゲーム内容だけが保存される。
この事を「今回のプレイ」と呼ぶ。

識別名は、「crsseldat」である。
セレクタにて、以下のように共有オブジェクトを作成する。
sos = SharedObject.getLocal("crsseldat","/");

sosとはセレクタで使用する共有オブジェクト名である。
自由に決めて良いが、ここではsosで説明する。

これにより、以下の変数を読み込む事が出来る。

sos.data.flg        常に1
sos.data.gamename   ゲーム名
sos.data.play_e     今回のEASYプレイ回数
sos.data.play_h     今回のHARDプレイ回数
sos.data.play_m     今回のMANIACプレイ回数
sos.data.clr_e      今回のEASYクリア回数
sos.data.clr_h      今回のHARDクリア回数
sos.data.clr_m      今回のMANIACクリア回数
sos.data.hi_e       今回のEASYのハイスコア
sos.data.hi_h       今回のHARDのハイスコア
sos.data.hi_m       今回のMANIACのハイスコア
sos.data.t_score    今回の累積スコア
sos.data.t_ok       今回の累積OK数
sos.data.t_late     今回の累積LATE数
sos.data.t_ng       今回の累積NG数
sos.data.t_sec      今回の累積プレイ時間(秒)
sos.data.hi_cmb     今回の最大コンボ数
sos.data.condstr_e  今回のEASYでハイスコアを出した時のコンディション文字列
sos.data.condstr_h  今回のHARDでハイスコアを出した時のコンディション文字列
sos.data.condstr_m 今回のMANIACでハイスコアを出した時のコンディション文字列
ゲーム名とは、サリングを起動する時に指定するゲーム名と同じである。
今回のハイスコアとは、今回のプレイの中だけを見た時の最高得点である。あらかじめ保存されているハイスコアは無視される。
累積スコアとは、EASY/HARD、CLEAR/FAILEDに関わらず、スコアが累積される値である。
例:
保存されているハイスコアが40000、今回2回プレイして10000、20000だった場合、今回のハイスコアは20000、累積スコアは30000となる。


累積プレイ時間とは、EASY/HARD/MANIAC、CLEAR/FAILEDに関わらず、プレイした時間が秒単位で蓄積される値である。

コンディション文字列とは、コンディションの結果を表した48文字の文字列である。
ミスがない部分を「0」、ミスがあった部分を「1」としてそれが48個続く。
sos.data.condstr_e = "000000000000100000000100000000010000000001000000";


この保存内容が存在した場合にセレクタで処理をするような場合、処理が済んだら保存内容を無効にしなければ、同じ保存内容を何度も処理する事になる。

sos.data.flg は必ず1なので、これを使い、
if (sos.data.flg == 1) {
	処理;
	sos.data.flg = 0; //0にして無効化
}
のような方法が考えられる。