領域アクション定義ファイルとは、クリッカブルマップの各領域の振る舞いを定義したファイルです。
拡張子は .ma で、通常は本体の画像ファイルと同じファイル名にします。たとえば、本体の画像の名前が map.png であれば、領域アクション定義ファイルのファイル名は map.ma にします。
領域アクション定義ファイルはテキストファイルですのでテキストエディタで編集します。
領域アクション定義ファイルは、一行ごとに、「領域番号 : アクション」を領域の数だけ書いた物です ( コロンは半角 )。
たとえば、上記の地図の例だと、
11: hint="埼玉"; storage="maptest2.ks"; target="*m11";
8: hint="群馬"; storage="maptest2.ks"; target="*m8";
7: hint="栃木"; storage="maptest2.ks"; target="*m7";
9: hint="茨城"; storage="maptest2.ks"; target="*m9";
10: hint="千葉"; storage="maptest2.ks"; target="*m10";
12: hint="東京"; storage="maptest2.ks"; target="*m12";
2: hint="神奈川"; storage="maptest2.ks"; target="*m2";
3: hint="山梨"; storage="maptest2.ks"; target="*m3";
1: hint="静岡"; storage="maptest2.ks"; target="*m1";
4: hint="長野"; storage="maptest2.ks"; target="*m4";
5: hint="新潟"; storage="maptest2.ks"; target="*m5";
6: hint="福島"; storage="maptest2.ks"; target="*m6";
のような記述になります。領域番号と、上の例の領域画像のパレットインデックスは一致しています。
「
アクション」 ( コロンより後の部分 ) は KAG の文法からは離れ、TJS の文法で書きますが、難しい物ではありません。
「名前=値;」の形式で必要なだけ書くというものです。セミコロンを忘れないようにしてください。
使用できる名前には以下の物があります。
- storage, target, onenter, onleave, hint, exp, countpage
- これらはすべて link タグと同様の機能を持っていますが、すべて、属性の値を " " ( ダブルクオーテーション ) で囲んで指定してください ( 上記の例のように )。" " で囲まないとエラーになったり、正常に動作しなかったりします。
- cursor
- 領域の上にマウスカーソルがある場合のマウスカーソル形状を指定します。cursor タグでの指定に似ていますが、 cr で始まるマウスカーソル定数を用いる場合は、& をつけずにそのまま書きます ( たとえば cursor = crSizeAll; )。マウスカーソルのファイルを指定する場合は " " ( ダブルクオーテーション ) で囲んで書きます ( たとえば cursor = "wagtail.ani"; )。
領域アクション定義ファイルでは、領域番号 0 は特別な指定をするために使用されます。現バージョンでは autodisable が使用可能です。たとえば、
0 : autodisable=false;
とすると、クリッカブルマップをクリックしても、クリッカブルマップが無効な ( クリッカブルマップとして操作できない ) 状態になりません。通常はこの指定を行わなくて OK です。
この指定を行わなかったり、領域アクション定義ファイルに領域番号 0 の指定がなかったりすると、クリッカブルマップをクリックしたとき、再び
image タグか
mapaction タグで領域アクション定義ファイルが読み込まれるまで、クリッカブルマップは無効な ( クリッカブルマップとして操作できない ) 状態になります。
Note
アクションが何も定義されなければ、その領域は無視されます。たとえば、条件によって領域を使用可能にしたり不可能にしたりしたい場合は、TJS の if 文を使って、
11: if(f.flag == 1) { hint="埼玉"; storage="maptest2.ks"; target="*m11"; }
のように記述することができます。この場合は、f.flag が 1 の場合のみに、「hint="埼玉"; storage="maptest2.ks"; target="*m11";」というアクションを定義する、という意味になります。