AREA 021
Featuring AlphaScript

STEP 15 パラメータ

 

AlphaScript を動作させるには、HTMLファイルを用意して、その中に埋め込む必要があります。  Javaアプレットを埋め込むのは APPLET タグですので、これを記述すればOKです。

AlphaScript を埋め込む場合のタグは、以下のようになります。

<applet archive="AlphaScript.jar" code="a.class" width="画面の幅" height="画面の高さ">

<!-- PARAM タグを書く場所 -->

</applet>

archive は .jar で終わるプログラムのファイル名を指定します。  例ではHTMLファイルと同じ場所の AlphaScript.jar を読み込みますが、 頭にフォルダ名を付ければ本体が別の場所にあっても使用できます。  code は実行するクラス名を指定しますが、 AlphaScript では必ず ”a.class” としてください。 (なぜ a なのか・・・それは、いろいろ事情がありまして・・・)  width,height はそれぞれアプレット表示領域の幅・高さをピクセル単位で指定します。  幅・高さそれぞれ 1024ピクセル(2の10乗) までが有効です。(画面が大きくなるほど処理も重くなるので注意。。)  APPLETタグ では他にもレイアウトに関する属性などが設定できますが、必須ではないので説明は省略させていただきます。

HTMLにおけるAPPLETタグの扱いは画像と似ていますので、このタグの前後にいろいろなタグを書いて、自由にレイアウトを変更できます。  画面のまわりのデザインが優れていれば、アプレットの内容も際立つかもしれません。


パラメータリスト

APPLETタグにパラメータを追加することで、スクリプト実行に関する設定を変更できます。

パラメータは、先ほどの例で示された位置に記述します。  以下のように、ひとつのアプレットに対していくつでも書けます。

<param name="パラメータ名" value="">
<param name="パラメータ名" value="">
・・・

パラメータ名は、大文字と小文字を区別しません。  また、値が1文字も指定されていなければ指定されていないものと見なされます。(一時的に削除したい時に便利です)  ON か OFF を指定するパラメータでは、何か好きな値を記述すれば ON になります。

AlphaScript で用意されているパラメータの一覧を以下に示します。

 

TextEncodeテキストの文字コードを指定
LabelInit初期化ラベル名を指定
LabelMainメインループラベル名を指定
SourceFileソースファイル名を指定
JumpLimitジャンプ回数の上限設定
CallLimitコール回数の上限設定
FPSフレーム数を指定
ScreenSizeW, ScreenSizeH画面サイズを指定
PrintInfoスクリプト情報を出力
PrintCode最適化スクリプトを出力
PrintCodeObfuscate最適化スクリプトを曖昧化

 

TextEncode − エンコード名

読み込む外部テキストのエンコードを指定します。  デフォルトでは SJIS (Shift-JIS)になっています。  それ以外のエンコード名がはっきりしないため、このパラメータはとりあえず無視してください。(だったら載せなくていい!?)


LabelInit − 初期化ブロックの開始ラベル名

初期化ブロックの開始位置のラベル名を指定します。  ここで指定するラベルは、一番外側のスコープにあるもので、ラベル番号は 0 でなければなりません。  該当するラベルが見つからなければ、実行時にエラーになります。

このパラメータは省略可能です。  省略した場合、初期化ブロックはなくなり、メインループブロックに移ります。


LabelMain − メインループブロックの開始ラベル名

メインループブロックの開始位置のラベル名を指定します。  ここで指定するラベルは、一番外側のスコープにあるもので、ラベル番号は 0 でなければなりません。  該当するラベルが見つからなければ、実行時にエラーになります。

このパラメータは省略可能です。  省略した場合、メインループブロックはなくなり、初期化終了後に動作を停止します。(画面には何も描画されません)


SourceFile [N] − ファイル名

ソースファイル名を指定します。  [N] には 0 から始まる番号を付けます。  これにより、複数のソースファイルを指定することができます。  実際には、各ファイルが順番に 1 つにつながったスクリプトとして読み込まれます。  途中で番号が抜けていると、そこまでのファイルしか認識されませんので注意してください。  最大10個まで指定することができますが、1つのファイルのサイズは約64KBまでとなっています。

ファイルの場所は、実行するHTMLファイルの場所が基準になります。  ファイル名の前に ”フォルダ名/” を付ければフォルダの中のファイルも読み込めます。


JumpLimit − 1 〜 1000000

処理ブロックの開始から終了の間で、ジャンプを実行できる回数の上限を指定します。  この回数を超えてジャンプしようとすると、エラーになります。  これにより、ちょっとしたミスによる無限ループを防げます。

デフォルトでは10万回となっています。  敢えてこれを制限してみるのも一興です。


CallLimit − 1 〜 1000000

処理ブロックの開始から終了の間で、コールを実行できる回数の上限を指定します。  この回数を超えてコールしようとすると、エラーになります。  これにより、ちょっとしたミスによる無限ループを防げます。  コールの場合は、return をすると、回数カウントが 1 つ減りますので、 「コールして復帰」を繰り返すだけなら問題ありません。

デフォルトでは、1000回となっています。  こういう変わった設定ができるのは、AlphaScript ぐらいかもしれません。(^_^;


FPS − 1 〜 100

秒間フレーム数を整数で指定します。  この数が大きいほど滑らかなアニメーションになりますが、 マシンの処理速度が十分でなければ処理落ちします。  また、実行環境や状態により、実際のフレーム数にはいくらかズレが生じます。

30 〜 60 の間ぐらいが標準的です。 デフォルトでは 10 フレームに設定されています。 (なお、一般的に人間の目では秒間 50 フレームを超える動きを認識できないとされています・・・がホントなのかな?  ̄▽ ̄;)


ScreenSizeW, ScreenSizeH − 1 〜 1024

画面のサイズを指定します。  サイズは本来埋め込みタグの width, height で指定すればOKなのですが、 ブラウザでページの表示拡大率を変更していた場合、内部的な画面サイズもそれに影響されてしまうことがあります。  これを避けたい場合は、このパラメータで埋め込みサイズと同じ値を指定してください。  マウスの座標取得についても、サイズ変更によって生じた余白を考慮した値になります。  (なお、縮小表示した場合に画面の一部が隠れてしまうのは防げません。  そもそも、Javaアプレットを再生する際にページの表示比率を100%以外に設定すべきではないです ^^;)


PrintInfo − ON/OFF

このパラメータを記述すると、スクリプトの詳細な情報を出力します。  AlphaScript のバージョンを確認するのにも使えます。  スクリプトにエラーがあると出力されず、出力後にスクリプトは実行されません。 

出力される情報は、スクリプト中に存在する要素の個数です。  これらに制限を設けて、ショートプログラムを作ってみるのも面白いかもしれません。  各項目は、それぞれ以下のような個数を示しています。

コマンド  ; や { } で区切られる命令の単位
ラベル  宣言されたラベルの数
条件分岐  if, else, elseif の数
アイテム  数値や演算子などの数
変数メモリ  宣言された変数の総要素数


PrintCode − ON/OFF

このパラメータを記述すると、実行しようとしたスクリプトを整形して出力します。  ファイルごとの区切りはなくなり、コメントも除去され、改行や空白は規則的に挿入されます。  マクロは変換された状態になっていますので、結果的にどんなスクリプトになったのか知りたい時にも使えます。  スクリプトにエラーがあると出力されず、出力された場合もスクリプトは実行されません。  なお、出力処理には少し時間が掛かることがあるかもしれません。


PrintCodeObfuscate − ON/OFF

PrintCode を指定して、さらにこのパラメータを記述すると、スクリプトを最小化&曖昧化して出力します。  具体的には、改行や空白が無くなり、変数名とラベル名が短い文字列に置き換えられ、数値の不要な部分も削除します。  出力されたコードをコピーしてソースファイルに貼り付ければ、スクリプトのサイズを小さく抑えられます。

コンソール内の文字列は、選択した状態で Ctrl+C でコピーできます。  文字が選択されていない時は、Ctrl+Home → Shift+Ctrl+End を入力すればOKです。

 

ページ一覧に戻る

Copyright (c) Rabit 2005-2012 all rights reserved.