栞のロード時に処理を追加する RunOnLoad.ks 1. はじめに RunOnLoadは、onLoad.ksに従って、栞のロード時に任意の処理を実行 する機能を吉里吉里に追加する。 ついでにロード時に最前面に指定画像をトランジション表示→消去する。 どっちかというと後者の方がメイン機能かも。 2. 使用例 最初に一回だけ、KAGスクリプト(例えばfirst.ks)の頭で以下を実行。 [call storage="RunOnLoad.ks"] この後、栞をロードすると onload.ks に従ったスクリプトの実行、 指定した画像の最前面への表示→消去を行う。 onload.ksが存在しない場合は単純に無視し、画像の表示→消去のみを 実行する。 3. 動作概要 栞をロードすると、以下の順番に処理を行う(defaultの場合)。 1. onLoad.ks ファイルに *before が存在すれば実行 2. before_elm.storage= または befor_elm.color= へクロスフェード 3. onLoad.ks ファイルに *before_restore が存在すれば実行 4. 栞をロード 5. onLoad.ks ファイルに *after_restore が存在すれば実行 6. after_elm.storage= または after_elm.color= へクロスフェード 7. onLoad.ks ファイルに *after が存在すれば実行 3. KAGタグリファレンス [runonload_opt for= method= rule= storage= time= color= enabled=] 説明: トランジションで表示→消去される画像の、表示・消去パラメータを設定する ここで指定した値はそのまま beginTransition() に渡されるので注意。 例えば method=universalならrule=xxxを追加しなければならない。 引数: for=before|after 表示(=before)、消去(=after)時のいずれのパラメータを設定 するかを指定する。無指定で両方指定 method= 表示・消去パラメータのうち、[trans]のパラメータ。def=crossfade storage=表示する画像ファイルを指定する。color= と背反。 デフォルトでは指定されていない。for=beforeにのみ意味があり、 fore=afterの時は無視される。理由はわかる…よね? time= 表示・消去パラメータのうち、[trans]のパラメータ。def=600 color= storage=が指定されなかったときの画面色。 (def:for=beforeならdef=0xffffffff、for=afterなら0x00000000) enabled= トランジションするかどうか。def=true。for に関わらず設定される。 keyenabled= OnLoad実行中にキー入力を許可するかどうか。def=false(許可しない) mouseenabled= OnLoad実行中にマウス入力を許可するかどうか。def=false(許可しない) [runonload_wait] 説明: runonloadの終了を待つ 引数: なし 注意: runonloadは二番目のトランジションが終わる前にKAGに制御を戻すので、 そこで先に進んでほしくないときに使用する。気持ちセーブラベル直後に 書いておくと問題なさげ。個人的には特に理由なければ書かない方が いいと思う。 4. 制限 ・今のところ一度読み込むと無効化できない ・onLoad.ksの*before/*before_restore/*after_restore/*afterを実行するの  はkag.extraConductorなので、*after_restore/*after では複雑なことは  できない(ロード後の状態を壊すかもしれないから) ・結局、[runonload_opt for=before storage="画像ファイル"] とかやって  実際栞をロードしてみて、どのように処理されるか見て頂いた方が早い ・トランジション中のマウス・キーイベントをdisableするため、kag.onKey*と  kag.onMouse*を一時的に全部フックして無効化するというアツい実装になって  いる。いいのかな。というかそれ以外にいい方法を思いつかなかった…。  なんかいい方法募集中。