Inside KAG3/メッセージレイヤ関連

Last-modified: 2016-02-24 (水) 13:00:56

メソッド

kag.back.messages[n].setPosition(elm)

機能
positionタグに相当するメソッド。メッセージレイヤ n 裏画面の属性を設定する
引数
elm…辞書配列オブジェクト。当メソッドはキーleft, top, width, height, frame, framekey, color, opacity, marginl, margint, marginr, marginb, vertical, draggable, visibleの値を参照する
戻り値
なし

kag.cancelAutoMode()

機能
[自動的に読み進む]モードをキャンセルする。kag.onAutoModeMenuItemClick()から呼び出されているメソッド
引数
なし
戻り値
なし

kag.current.clear2()

機能
カレントのメッセージレイヤをクリアする。フォント設定はリセットされない
引数
なし
戻り値
なし
備考
メッセージが下端まで描画され自動的にページ待ち→クリアとなる際に呼び出されているメソッド

kag.current.processCh(ch)

機能
カレントのメッセージレイヤに文字列 ch を描画する
引数
ch…描画する文字列
戻り値
真…改行が行われ、かつそれがページ末端を越えた
偽…それ以外
備考
chタグハンドラの内部で呼び出されているメソッド(chタグそのものではないので注意)

kag.current.setFocusToLink(n, force = false)

機能
マウスカーソルをリンク番号 n のオブジェクトに移動させる。フォーカスの設定もできる
引数
n…リンク番号(0オリジン)
force…true時、
キーボードの状態に関わらずマウスカーソルを移動し、フォーカスを設定する/false時、キーボード操作が行われた場合のみマウスカーソルを移動する。省略時false
戻り値
void以外…単一行エディットまたはチェックボックスオブジェクト
void…エラーまたはそれ以外のオブジェクト

kag.enterAutoMode()

機能
[自動的に読み進む]モードに移行する。kag.onAutoModeMenuItemClick()から呼び出されているメソッド
引数
なし
戻り値
なし

kag.fore.messages[n].setPosition(elm)

機能
positionタグに相当するメソッド。メッセージレイヤ n 表画面の属性を設定する
引数
elm…辞書配列オブジェクト。当メソッドはキーleft, top, width, height, frame, framekey, color, opacity, marginl, margint, marginr, marginb, vertical, draggable, visibleの値を参照する
戻り値
なし

kag.getCurrentRead()

機能
現在のシナリオ部分が既読か否かを返す
引数
なし
戻り値
真…既読
偽…未読

kag.setDelay(elm)

機能
delayタグに相当するメソッド。メッセージの表示速度を設定する
引数
elm…辞書配列オブジェクト。当メソッドはキーspeedの値を参照する
戻り値
なし

kag.skipToStop()

機能
次の選択肢/未読までスキップする。kag.onSkipToNextStopMenuItemClick()から呼び出されているメソッド
引数
なし
戻り値
なし

イベントハンドラ

kag.onAutoModeMenuItemClick(sender)

機能
[システム‐自動的に読み進む]メニューのイベントハンドラ
引数
sender…無条件にkagオブジェクトを渡して構わない(内部的にはsenderを捨てている)
戻り値
なし

kag.onAutoModeWaitMenuClick(sender)

機能
[システム‐自動的に読み進むウェイト]メニューのイベントハンドラ
引数
sender…以下のいずれかのKAGMenuItemオブジェクトを渡すこと:kag.autoModeFastMenuItem(短い)、kag.autoModeFasterMenuItem(やや短い)、kag.autoModeMediumMenuItem(普通)、kag.autoModeSlowerMenuItem(やや長い)、kag.autoModeSlowMenuItem(長い)
戻り値
なし
備考
代わりに以下のメソッドを呼び出しても構わない(引数なし・戻り値なし)
‐kag.autoModeFastMenuItem.click()…短い
‐kag.autoModeFasterMenuItem.click()…やや短い
‐kag.autoModeMediumMenuItem.click()…普通
‐kag.autoModeSlowerMenuItem.click()…やや長い
‐kag.autoModeSlowMenuItem.click()…長い

以下はウェイトを「短い」に変更するサンプル。

; ウェイトを「短い」に変更
[link exp="kag.onAutoModeWaitMenuClick(kag.autoModeFastMenuItem)"]
  短い
[endlink]

kag.onCh2ndNonStopToPageBreakItemClick(sender)

機能
[文字表示‐一度読んだところは‐ページ末まで一気に]メニューのイベントハンドラ
引数
sender…無条件にkagオブジェクトを渡して構わない(内部的にはsenderを捨てている)
戻り値
なし

kag.onCh2ndSpeedMenuItemClick(sender)

機能
[文字表示‐一度読んだところは]メニューのイベントハンドラ
引数
sender…以下のいずれかのKAGMenuItemオブジェクトを渡すこと:kag.ch2ndNoWaitMenuItem(ノーウェイト)、kag.ch2ndFastMenuItem(高速)、kag.ch2ndNormalMenuItem(普通)、kag.ch2ndNoChangeMenuItem(変えない)
戻り値
なし
備考
代わりに以下のメソッドを呼び出しても構わない(引数なし・戻り値なし)
‐kag.ch2ndNoWaitMenuItem.click()…ノーウェイト
‐kag.ch2ndFastMenuItem.click()…高速
‐kag.ch2ndNormalMenuItem.click()…普通
‐kag.ch2ndNoChangeMenuItem.click()…変えない

kag.onChNonStopToPageBreakItemClick(sender)

機能
[文字表示‐表示速度‐ページ末まで一気に]メニューのイベントハンドラ
引数
sender…無条件にkagオブジェクトを渡して構わない(内部的にはsenderを捨てている)
戻り値
なし

kag.onChSpeedMenuItemClick(sender)

機能
[文字表示‐表示速度]メニューのイベントハンドラ
引数
sender…以下のいずれかのKAGMenuItemオブジェクトを渡すこと:kag.chNoWaitMenuItem(ノーウェイト)、kag.chFastMenuItem(高速)、kag.chNormalMenuItem(普通)、kag.chSlowMenuItem(遅い)
戻り値
なし
備考
代わりに以下のメソッドを呼び出しても構わない(引数なし・戻り値なし)
‐kag.chNoWaitMenuItem.click()…ノーウェイト
‐kag.chFastMenuItem.click()…高速
‐kag.chNormalMenuItem.click()…普通
‐kag.chSlowMenuItem.click()…遅い

kag.onSkipToNextStopMenuItemClick(sender)

機能
[システム‐次の選択肢/未読まで進む]または[システム‐次の選択肢まで進む]メニューのイベントハンドラ
引数
sender…無条件にkagオブジェクトを渡して構わない(内部的にはsenderを捨てている)
戻り値
なし

メンバ変数

kag.autoMode

真なら「自動的に読み進む」が有効、偽なら無効。
この値を変更する場合は、kag.onAutoModeMenuItemClick()かkag.autoModeMenuItem.click()を呼び出す方が良い。

kag.autoModeLineWait

「自動的に読み進む」場合の改行時のウェイト(ミリ秒)。
初回起動時にはkag.autoModeLineWaits.mediumが代入される。

kag.autoModeLineWaits

kag.autoModeLineWaitに代入するパラメータの辞書配列。
初期値はConfig.tjsで設定でき、初期状態では以下のようになっている。

キー意味
fast180短い
faster240やや短い
medium300普通
slower360やや遅い
slow500遅い

kag.autoModePageWait

「自動的に読み進む」場合の改ページ時のウェイト(ミリ秒)。
初回起動時にはkag.autoModePageWaits.mediumが代入される。

kag.autoModePageWaits

kag.autoModePageWaitに代入するパラメータの辞書配列。
初期値はConfig.tjsで設定でき、初期状態では以下のようになっている。

キー意味
fast400短い
faster700やや短い
medium1000普通
slower1300やや遅い
slow2000遅い

kag.ch2ndNonStopToPageBreak

既読部分でページ末まで一気に読み進むなら真、そうでなければ偽。
この値を変更する場合は、kag.onCh2ndNonStopToPageBreakItemClick()を呼び出す方が良い。

kag.chNonStopToPageBreak

ページ末まで一気に読み進むなら真、そうでなければ偽。
この値を変更する場合は、kag.onChNonStopToPageBreakItemClick()を呼び出す方が良い。

kag.chSpeed

現在の文字表示速度(厳密には文字表示にかけるウェイト)。
単位はms。
初回起動時にはkag.chSpeeds.normalが代入される。

kag.chSpeeds

kag.userChSpeedやkag.chSpeedに代入するパラメータの辞書配列。
初期値はConfig.tjsで設定でき、初期状態では以下のようになっている。

キー意味
fast10高速
normal30普通
slow50遅い

kag.chUserMode

[文字表示‐表示速度]メニューから選択した文字表示速度か[delay speed=user]で設定した文字表示速度になっているなら真、[delay speed=nowait]か[delay speed=ウェイト]で設定した文字表示速度になっているなら偽。

kag.current

カレントのメッセージレイヤオブジェクトで、kag.fore.messages[n]またはkag.back.messages[n]のエイリアス(nはメッセージレイヤの番号)。以降の説明などでkag.currentと書いている箇所は、kag.fore.messages[n]またはkag.back.messages[n]に置き換えることが可能。

kag.current.frameColor

カレントのメッセージレイヤの表示色。初期値はConfig.tjsのframeColorと同じ。kag.current.frameGraphicが空文字の場合のみ有効。

kag.current.frameGraphic

カレントのメッセージレイヤにおけるフレーム(メッセージ枠)画像のファイル名。初期値はConfig.tjsのframeGraphicと同じ。この値が空文字の場合、表示色(kag.current.frameColor)と不透明度(kag.current.frameOpacity)の値が使われる。

kag.current.frameOpacity

カレントのメッセージレイヤの不透明度。初期値はConfig.tjsのframeOpacityと同じ。kag.current.frameGraphicが空文字の場合のみ有効。

kag.current.lastLink

最後に選択したハイパーリンクの番号(0オリジン)。
初期値、または何も選択していない場合は -1 となっている。
メッセージレイヤのクリアなどで、すぐに -1 に戻されるため、必要なら別の変数に値を退避しておくと良い。

kag.current.links

リンクオブジェクトの配列。厳密にはハイパーリンク、グラフィカルボタン、単一行エディット、チェックボックスのオブジェクトを保持する。

kag.current.name

カレントのメッセージレイヤ名。
例えば、カレントのメッセージレイヤがメッセージレイヤ0表画面なら、“表メッセージレイヤ0”となっている。
監視式に追加しておくと便利。

kag.numMessageLayers

現在のメッセージレイヤの枚数。
初期値はConfig.tjsのnumMessageLayersと同じ。
この値を変更する場合は、laycountタグを介した方が無難。

メッセージレイヤの数=[emb exp="kag.numMessageLayers"]

kag.skipMode

スキップの状態。
0=スキップなし、1=クリック待ち記号まで、2=改ページ待ち記号まで、3=次の停止まで、4=早送り。
「KAG Systemリファレンス」の「TJSをもっと使うために」も参照のこと。

以下はスキップ中なら効果音を再生させないサンプル。

; スキップ(kag.skipModeが2以上)中なら効果音を再生しない
[playse buf=0 storage="se.ogg" cond="kag.skipMode<=1"]

kag.userCh2ndSpeed

デフォルトの既読部分の文字表示速度。
この値が -1 の場合、kag.userChSpeedと同じと見なす。
初回起動時には -1 が代入される。

kag.userChSpeed

デフォルトの文字表示速度(厳密には文字表示にかけるウェイト)。
単位はms。
初回起動時にはkag.chSpeeds.normalが代入される。
この値を直接変更した場合は、直後に[delay speed=user cond="kag.chUserMode"]を実施する方が無難。

補足

kag.userChSpeedとkag.chSpeedについて

kag.userChSpeedはデフォルトの文字表示速度を意味し、

  • [delay speed=user]とした時に参照される文字表示速度
  • 値は[文字表示‐表示速度]メニュー(や右クリックサブルーチンなど)で変更される;プレイヤーの希望する値が反映される
  • 初期値はConfig.tjsのchSpeedsで設定されている

となっている。
つまり、右クリックサブルーチンで文字表示速度を変更するには、直接間接にkag.userChSpeedの値を変更し、[delay speed=user cond="kag.chUserMode"]を呼び出せば良いことになる。

一方、kag.chSpeedは現在の文字表示速度を意味し、

  • 普段はkag.userChSpeedと同じ値
  • 値は[delay speed=nowait]か[delay speed=ウェイト]で設定される;ゲーム制作者の希望する値が反映される

となっている。

なお、プレイヤーが設定した文字表示速度か、ゲーム制作者が設定した文字表示速度かを判定するには、kag.chUserModeを参照すれば良い。*1


*1 実際の文字表示速度を示すkag.actualChSpeedというメンバ変数もあるが、特に説明しない。