- []
- [以前のリビジョン]
タグ一覧
なんかいろいろやりたいこと、書きたいことはあるのにうまくできません。昔から時間の作り方は苦手。
KAGのエラーメッセージ強化版を作ってみようかな。と思ってのまとめぺーじ。主に属性が取りえる値について。KAGのタグについて、詳しく知りたい人はSDK同梱のリファレンスを読みましょう。
ch
| text | 必須 | Text |
graph
| storage | 必須 | FileName |
| key | 任意 | "adapt" / 0xRRGGBB / パレットインデックス番号 |
| char | 任意 | Boolean |
| alt | 任意 | Text |
storageは通常画像読み込み同様、KAGLayer#loadImagesが用いられるので拡張子は省いてもよい。拡張子は、/code/visual/GraphicLoaderIntif.cpp#2307Lで、tTVPGraphicHandlerType=['bmp', 'dib', ''jpeg', 'jpg', 'jif', 'png', 'eri', 'tlg', 'tlg5', 'tlg6']の順に補完される。
keyはKAGLayer#adjustColorKeyで適切に処理される。voidならclNone、"adapt"ならclAdapt、7文字以上なら+key(0xRRGGBB形式として)、6文字以下なら+key+0x3000000(パレットインデックスとして)。
hch
| text | 必須 | Text |
| expand | 任意 | Boolean |
r
| eol | 任意 | Boolean |
ignoreCR=falseのときにCRLFにより[r eol="true"]が自動生成される。区別するための属性。
ruby
| text | 必須 | Text |
font
| size | 任意 | "default" / Number |
| face | 任意 | "default" / "user" / FontName |
| color | 任意 | "default" / 0xRRGGBB |
| italic | 任意 | "default" / Boolean |
| rubysize | 任意 | "default" / Number |
| rubyoffset | 任意 | "default" / Number |
| shadow | 任意 | "default" / Boolean |
| edge | 任意 | "default" / Boolean |
| edgecolor | 任意 | "default" / 0xRRGGBB |
| shadowcolor | 任意 | "default" / 0xRRGGBB |
| bold | 任意 | "default" / 0xRRGGBB |
| antialiased | 任意 | "default" / Boolean |
faceはカンマ区切りで複数のフォント名を列挙できる。また、先頭をカンマにすることも可能(Font#face)。また、縦書きの際でもフォント名に'@'はいらない。
edgeとshadowは排他的で、edgeの方が優先される。
数値を入力する属性は、基本的には実数でも大丈夫な感じ? rubyoffsetは負数可。サイズは常識的には正数だが、入力上はエラーにならないはず。(Layer#font#heightのデフォルトは-12だし)
antialiasedはアンドキュメント。
deffont
| size | 任意 | Number |
| face | 任意 | "user" / FontName |
| color | 任意 | 0xRRGGBB |
| rubysize | 任意 | Number |
| rubyoffset | 任意 | Number |
| shadow | 任意 | Boolean |
| edge | 任意 | Boolean |
| edgecolor | 任意 | 0xRRGGBB |
| shadowcolor | 任意 | 0xRRGGBB |
| bold | 任意 | Boolean |
| antialiased | 任意 | Boolean |
antialiasedはアンドキュメント。
resetfont
empty
style
| align | 任意 | "default" / "left" / "top" / "center" / "right" / "bottom" |
| linespacing | 任意 | "default" / Number |
| pitch | 任意 | "default" / Number |
| linesize | 任意 | "default" / Number |
| autoreturn | 任意 | "default" / Boolean |
alignは横書きと縦書きは区別されていない(縦書きだろうと"right"は効く)。
linespacingとpitchは負数・実数可能。linesizeは基本的に正数前提で実数可能(フォントサイズ以上でなければ破棄される)。
defstyle
| linespacing | 任意 | Number |
| pitch | 任意 | Number |
| linesize | 任意 | Number |
| autoreturn | 任意 | Boolean |
autoreturnはアンドキュメント。
resetstyle
empty
link
| storage | 任意 | FileName |
| target | 任意 | LabelName |
| exp | 任意 | Expression |
| color | 任意 | 0xRRGGBB |
| hint | 任意 | Text |
| onenter | 任意 | Expression |
| onleave | 任意 | Expression |
| countpage | 任意 | Boolean |
| clickse | 任意 | FileName |
| clicksebuf | 任意 | Number |
| enterse | 任意 | FileName |
| entersebuf | 任意 | Number |
| leavese | 任意 | FileName |
| leavesebuf | 任意 | Number |
| opacity | 任意 | Number |
storageのksファイル名は確か拡張子必要なはず。SEはSE.tjs#39Lで['wav', 'ogg', 'tcw']を補完。
バッファは0以上の整数で、< kag.numSEBuffers。
opacityはアンドキュメント。0から255まで。多分実数可能。
endlink
empty
button
| graphic | 必須 | FileName |
| graphickey | 任意 | "adapt" / 0xRRGGBB / パレットインデックス番号 |
| storage | 任意 | FileName |
| target | 任意 | LabelName |
| recthit | 任意 | Boolean |
| exp | 任意 | Expression |
| hint | 任意 | Text |
| onenter | 任意 | Expression |
| onleave | 任意 | Expression |
| countpage | 任意 | Boolean |
| clickse | 任意 | FileName |
| clicksebuf | 任意 | Number |
| enterse | 任意 | FileName |
| entersebuf | 任意 | Number |
| leavese | 任意 | FileName |
| leavesebuf | 任意 | Number |
SEバッファの数値は上限あり。
edit
| name | 必須 | String |
| length | 任意 | Number |
| bgcolor | 任意 | 0xRRGGBB |
| opacity | 任意 | Number |
| color | 任意 | 0xRRGGBB |
| maxchars | 任意 | Number |
nameには一般的に変数名が与えられる(ex. "f.foo")。
lengthは正数で実数可能。
maxcharsは正数で実数可能(内部でintにキャストされる)。0のときは無制限。
LinkEditLayer#exp = elm.name;LinkEditLayer#text = Scripts.eval(elm.name);とし、commit時には、Scripts.eval("(" + exp + ") = text");となる。
checkbox
| name | 必須 | String |
| bgcolor | 任意 | 0xRRGGBB |
| opacity | 任意 | Number |
| color | 任意 | 0xRRGGBB |
commit
empty
timeout
| time | 必須 | Number |
| storage | 任意 | FileName |
| target | 任意 | LabelName |
| exp | 任意 | Expression |
| se | 任意 | FileName |
| sebuf | 任意 | Number |
timeはミリ秒単位の正数。実数もおそらく可能。
sebufは0以上の整数。
ctimeout
empty
wheel
| storage | 任意 | FileName |
| target | 任意 | LabelName |
| func | 任意 | String |
| exp | 任意 | Expression |
| se | 任意 | FileName |
| sebuf | 任意 | Number |
funcには実行するメソッド名を与える。MessageLayer#processWheelにて、Scripts.eval(wheelFunc)(shift, delta, x, y)が実行される(Scripts.evalで評価された結果メソッドオブジェクトとなり、それを呼び出す形で実行する)。
cwheel
empty
click
| storage | 任意 | FileName |
| target | 任意 | LabelName |
| exp | 任意 | Expression |
| se | 任意 | FileName |
| sebuf | 任意 | Number |
cclick
empty
l
| canskip | 任意 | Boolean |
canskipはアンドキュメント。
p
empty
current
| layer | 任意 | |
| page | 任意 | |
| withback | 任意 | Boolean |
layerはKAGWindow#getMessageLayerNumberFromElmを用いているので、"message"でも構わない(意味はないが)。返す値は+elm.layer.substr(7)。
pageはKAGWindow#getMessageLayerPageFromElmを用いているので、正確には"back"か"back"以外。
"message%d"の上限はkag.numMessageLayers-1。
position
| layer | 任意 | "message" / "message%d" |
| page | 任意 | "fore" / "back" |
| left | 任意 | Number |
| top | 任意 | Number |
| width | 任意 | Number |
| height | 任意 | Number |
| frame | 任意 | FileName |
| framekey | 任意 | "adapt" / "0xRRGGBB / パレットインデックス番号 |
| color | 任意 | 0xRRGGBB |
| opacity | 任意 | Number |
| marginl | 任意 | Number |
| margint | 任意 | Number |
| marginr | 任意 | Number |
| marginb | 任意 | Number |
| vertical | 任意 | Boolean |
| draggable | 任意 | Boolean |
| visible | 任意 | Boolean |
layerとpageはKAGWindow#getMessageLayerObjectFromElmを用いているので、currentタグと同様の処理。
colorはframe=""のときのみ有効。
left/top/margin[ltrb]は負数も可能。実質的に影響ないと思われるが実数も可能かと。width/heightは1以上の整数。実数も可能か?
ct
empty
cm
empty
er
empty
indent
empty
endindent
empty
delay
| speed | 必須 | "user" / "nowait" / Number |
speedは数値での指定の際、0以上の整数をミリ秒単位で。
nowait
empty
endnowait
empty
locate
| x | 任意 | Number |
| y | 任意 | Number |
glyph
| line | 任意 | FileName |
| linekey | 任意 | "adapt" / 0xRRGGBB / パレットインデックス番号 |
| page | 任意 | FileName |
| pagekey | 任意 | "adapt" / 0xRRGGBB / パレットインデックス番号 |
| fix | 任意 | Boolean |
| left | 任意 | Number |
| top | 任意 | Number |
lineとpageは画像名を与えるが、拡張子はつけない。
leftとtopはfix="true"のときのみ有効。
locklink
empty
unlocklink
empty
loadplugin
| module | 必須 | FileName |
拡張子は省略できない。
title
| name | 必須 | String |
s
empty
clickskip
| enabled | 必須 | Boolean |
nextskip
| enabled | 必須 | Boolean |
cancelskip
empty
cancelautomode
empty
resetwait
empty
wait
| time | 必須 | Number |
| mode | 任意 | "normal" / "until" |
| canskip | 任意 | Boolean |
timeはミリ秒で。
wc
| time | 必須 | Number |
| canskip | 任意 | Boolean |
timeは文字数で、それにしたがって待つ。また必須指定だが省略すると1文字分待つ。
canskipはアンドキュメント。
waitclick
empty
rclick
| call | 任意 | Boolean |
| jump | 任意 | Boolean |
| target | 任意 | LabelName |
| storage | 任意 | FileName |
| enabled | 任意 | Boolean |
| name | 任意 | String |
enabled="false"であってもkag.rightClickCallなどに値は格納される。
callとjumpが両方とも"true"であればjumpとしてはたらく。
history
| output | 任意 | Boolean |
| enabled | 任意 | Boolean |
| autoreturn | 任意 | Boolean |
autoreturnはアンドキュメント。
showhistory
empty
hr
| repage | 任意 | Boolean |
hact
| exp | 必須 | Expression |
endhact
empty
hidemessage
empty
quake
| time | 必須 | Number |
| timemode | 任意 | "ms" / "delay" |
| hmax | 任意 | Number |
| vmax | 任意 | Number |
timeは必須指定だが、省略するとstopquakeされるまでゆれている。
timemode="ms"はミリ秒単位で、timemode="delay"だと文字単位で待つ。
stopquake
empty
wq
| canskip | 任意 | Boolean |
autowc
| enabled | 任意 | Boolean |
| ch | 任意 | String |
| time | 任意 | String |
ch="あいうえお" time="1,2,3,4,5"の形式で指定する。kag.autoWCWaits = [].split(",", , elm.time)で配列化したのち、int(acs * autoWCWaits[ind])としているので、空白をはさむことはできない(+" 2" => 0となる)。
一つしか時間を指定しなかった場合は ch タグで指定したすべての文字にその時間が設定されます。
この属性を省略した場合は 4 を指定したと見なされます。
とあるが、未実装のような感じ。
cursor
| default | 任意 | FileName / Number |
| pointed | 任意 | FileName / Number |
| click | 任意 | FileName / Number |
| draggable | 任意 | FileName / Number |
マウスカーソルをファイル名もしくはマウスカーソル定数の数値で与える。ファイルを用いるときは*.curもしくは*.aniのみで、拡張子を省略してはならない。".cur"や".ani"が含まれないときは数値としてみなす。
そのためマウスカーソル定数で与えるときは、default="&crDefault"のようにエンティティを用い、数値として与える必要がある。もし属性値が不適な文字列ならば、+valueにより0としてみなされる(&crDefault=0)。
close
| ask | 任意 | Boolean |
copybookmark
| from | 必須 | Number |
| to | 必須 | Number |
必須扱いだが、+elm.fromされるため省略されると0として扱われる。
栞ファイルをコピーするのみなので、numBookMarksによる上限は存在しない(fromファイルがなければ何もしない)。
erasebookmark
| place | 任意 | Number |
numBookMarksの上限を受けるが、上限を超えたからといってエラーはでない(何もしない)。
disablestore
| store | 任意 | Boolean |
| restore | 任意 | Boolean |
store
| enabled | 必須 | Boolean |
load
save
startanchor
gotostart
goback
record
tempsave
tempload
mappfont
locksnapshot
unlocksnapshot
エラーの種類
noticeレベルも含めて
- 未知のタグ(kag.onConductorUnknownTagで処理される)
- 省略してはならない必須属性がない
- 省略してもいいが必須指定の属性がない
- 未知の属性
- 任意属性しかもたないが、1つは属性を与えなければ意味のないタグ(font/positionなど)
- 組み合わせにより意味のない属性(fontタグのedgeとshadow/positionのframeとcolorなど)
- 取りえない値('true'/'false'/'fore'/'back'などのキーワード系)
- 取りえない値(数値の範囲;負数、実数)
- 取りえない値(数値の範囲;numCharacterLayersなど不定の上限が存在する場合)

