藤川帳

Studio F#の音楽とか吉里吉里とか担当の藤川ヒロヒコのブログ。
<< July 2004 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 >>
 
Studio F# on Youtube
ARCHIVES
みんなのブログポータル JUGEM
SPONSORED LINKS
 
スポンサーサイト

一定期間更新がないため広告を表示しています

- | | - | - | pookmark
JUGEM騒動

いやー、大変な騒ぎでしたね。JUGEMの中の人たちも大変だったことと思います。お疲れ様でした。といいますか、移行の準備を万端整えておけば苦労も少なかったと思うんですけれども、まあいろいろと事情があるんでしょう。

このまま落ち着くことを祈ります。

メッセージレイヤ

タグハンドラをいい気分で使っていると、ときどき思いもしないところでエラーが出たりします。私がはまったのは[emb]タグでした。おやおやと思ってMainWindow.tjsを眺めてみると、ハンドラを定義している部分になぜかembが見当たりません。何故? つーかここに定義してないってことは、一体どこで[emb]を捕まえてるんでしょう。

まあ細かいことは後々解明していくとして、とりあえず計算結果を文字として表示するためだけにKAGに戻り、また[iscript]でTJSに入るのもなんだかバカバカしい話です。要はメッセージレイヤに文字を描画できればいいわけで。

吉里吉里のLayersクラス自体が文字描画をサポートしているので、その辺のリファレンスを眺めながらhogeろうかと思ったんですけど、これだとちょっと不都合があります。フォント設定やハイパーリンクが効かないんですな。そこで、仕方が無いので、MessageLayerクラスのprocessCh()メソッドをたたくことにしました。

とりあえず[emb]はこれにて落着。……あー、でもコンダクタ通してないからウェイトがかからないんだよなぁ。これ、何とかならないかな……。

TJSとKAG

うちのサイトを改装したタイミングで「ごあいさつ」の文章を書き換えたんですけれども、そこでちょっとだけ触れた「TJSからKAGタグを使う」お話について。

吉里吉里作者のW.Deeさんがどこかで発言されてましたが、KAGってのはTJSの一種のラッパーなんですな。ラッパーというのは金管楽器ではなくて、何ていったらいいかな。ええと。まあひとことでいえば「小難しい機能を簡単に使うために一段かませるもの」というあたりでしょうか。

吉里吉里はTJSスクリプトの実行エンジンですから、TJSで書かれたものしか解釈できませんが、TJSを書こうと思うとJavaScriptを書ける程度の知識が必要になってしまい、それでは敷居が高くなってしまいますし、第一ノベルゲームのように文章がメインのものを作るときにはとても面倒です。そこでTJSで書かれた機能を簡単に扱えるように体系化しようという思想のもとに作られたのがKAGシステムで、つまるところKAGってのは一皮剥けばTJSスクリプトの集合体なわけです。

逆にいえばTJSでKAGシステムの機能を呼び出すことも可能です。ちょっと前まで私はMainWindow.tjsのメソッドを直接呼ぶという傍目には危険な行為をしていたんですが、最近はタグハンドラを拝借してKAGシステムにアクセスするようにしています。(多分)安全だし、何といってもKAGタグリファレンスという形でリファレンスが整備されているので、大変開発しやすくていい感じです。

タグハンドラというのは具体的にはkag.tagHandlersという辞書配列で、それぞれのタグは、タグ名をキーとするクロージャとして格納されています。なので、例えば[l]タグを書こうと思ったら、

kag.tagHandlers.l();
と記述すればいいわけです。タグの引数は無名の辞書配列としてクロージャに渡されます。例えば[link]なんかだと、
kag.tagHandlers.link(%["target" => "*hoge"]);
っていう感じ。これはあちこちで使えそうでしょ。実際、あちこちで使ってます。