10.セーブ・ロード・ステージ選択



この機能はJavaApplet単独のものではないです。
HTML(Webページ)上でJavaScriptを使い、JavaAppletを操作しています。
データはCookieに保存されます。


付属の「tetris.js」をHTMLと同じディレクトリに置き、
HTMLのヘッダに下の1行を書き込んでおきます。

<script src="tetris.js" type="text/javascript"></script>


HTMLの本文中にJavaAppletを埋め込みますが、

<applet code="STTetris.class" archive="sttetris.jar" name="applet" width=*** height=***>
</applet>

この際に、アプレットに名前をつけておきます。


フォームを作ります。

<form>


まず、セーブ・ロードの機能。

<input type="button" value="保存" onClick="save(applet)">
<input type="button" value="呼び出し" onClick="load(applet)">
<input type="button" value="削除" onClick="remove()">

ボタンを押したときに関数を呼び出すようにします。
その際に、埋め込んだJavaAppletを関数に渡しています。
(ちなみに、この関数は「tetris.js」の中で定義してある)

保存は、ステージ開始時のデータです。
プレイ途中のデータではないので注意。


次はステージ選択。

<select name="select1">
<option>選択</option>
<option>ステージ1</option>
<option>ステージ2</option>
<option>ステージ3</option>
        ・
        ・
        ・
</select>
<input type="button" value="ステージ選択1" onClick="choice(applet,select1,false)">

select には名前をつけておきます。
option は2個目がステージ1なので注意。

これも、ボタンを押したときに関数を呼び出すようにします。
その際に、埋め込んだJavaAppletとselectを関数に渡しています。
3個目は false を指定します。
(この関数も「tetris.js」の中で定義してある)

これで到達したステージまで選択可能になります。
未クリアのステージは選択できません。
(到達したステージとは、現在のデータと保存データのより進んだ方)


全ステージを選択可能にしたい場合は下のようにします。
関数に渡した3個目が true になっていることに注意。

<select name="select2">
<option>選択</option>
<option>ステージ1</option>
<option>ステージ2</option>
<option>ステージ3</option>
        ・
        ・
        ・
</select>
<input type="button" value="ステージ選択2" onClick="choice(applet,select2,true)">

フォームを閉じます。

</form>

以前、AppletとJavaScriptとの併用でおまけページに移動できない現象がありました。
InternetExplerer6で発生していましたが、InternetExplerer8では改善しているようです。


戻る