Inside KAG3/栞関連

Last-modified: 2016-02-22 (月) 13:10:40

メソッド

kag.canRestore()

機能
栞をたどる機能が有効か否かを返す
引数
なし
戻り値
真…栞をたどる機能が有効
偽…栞をたどる機能が無効
備考
disablestoreタグ、storeタグが使われているかどうかの判定に使える

kag.canStore()

機能
栞をはさむ機能が有効か否かを返す
引数
なし
戻り値
真…栞をはさむ機能が有効
偽…栞をはさむ機能が無効
備考
disablestoreタグ、storeタグが使われているかどうかの判定に使える

kag.getBookMarkDate(num)

機能
num の更新日時を返す
引数
num…栞の番号(0オリジン)
戻り値
栞がある場合…更新日時の文字列を返す。書式は"YYYY/MM/DD hh:mm"形式
栞がない場合…空文字(厳密にはvoidだがKAG内では空文字と比較されている)を返す
備考
フリーセーブモードでは無意味

kag.getBookMarkFileNameAtNum(num)

機能
num のローカルストレージ名を返す
引数
num…栞の番号(0オリジン)
戻り値
ローカルストレージ名の文字列
備考
‐フリーセーブモードでは無意味
‐当メソッドでは栞(実体のファイル)の有無は調べられない

kag.getBookMarkPageName(num)

機能
num のブックマーク名(セーブ可能なラベルの見出しに相当)を返す
引数
num…栞の番号(0オリジン)
戻り値
栞がある場合…ブックマーク名の文字列を返す
栞がない場合…"(未設定)"を返す
備考
フリーセーブモードでは無意味

kag.restoreBookMark(num, ask = true)

機能
num を辿る(ロード)
引数
num…栞の番号(0オリジン)
ask…ロードの確認をするならtrue、しないならfalseを指定すること。省略時true
戻り値
true…正常終了
false…エラー終了、ロードのキャンセルなど
備考
フリーセーブモードでは無意味

kag.setBookMarkProtectedState(num, s)

機能
num の保護フラグを設定する
引数
num…栞の番号(0オリジン)
s…書き込み保護をするならtrue、しないならfalseを指定すること
戻り値
なし
備考
‐フリーセーブモードでは無意味
‐栞が保護されているか否かを確認するには kag.bookMarkProtectedStates[num] を参照すること

kag.storeBookMark(num, ask = true)

機能
num を挟む(セーブ)
引数
num…栞の番号(0オリジン)
ask…セーブの確認をするならtrue、しないならfalseを指定すること。省略時true
戻り値
true…正常終了
false…エラー終了、セーブのキャンセルなど
備考
フリーセーブモードでは無意味

メンバ変数

kag.bookMarkProtectedStates

栞が保護されているか否かの配列(真/偽)。
この値を変更する場合は、kag.setBookMarkProtectedState()を介した方が良い。

kag.currentLabel

現在のラベル名(通常のラベル、セーブ可能なラベルのどちらも有り得る)。kag.conductor.curLabelも参照のこと。

kag.currentPageName

現在のページ(ラベルの見出し)名。

kag.numBookMarks

利用可能な栞の数。Config.tjsのnumBookMarksと同じ。フリーセーブモードでは無意味。

kag.thumbnailWidth

サムネイル画像の横幅(ピクセル)。
Config.tjsのthumbnailWidthと同じ。
kag.saveThumbnailが偽の場合、このメンバ変数は無意味。
なお、縦幅に相当するメンバは存在せず、(int)kag.thumbnailWidth*kag.scHeight/kag.scWidthで直接求めている。

sf.trail_KAGシナリオファイル_ラベル

ラベルの通過回数を示す。
例えば、KAGシナリオファイルがfirst.ks、ラベルが*startなら、sf.trail_first_startというシステム変数がそのラベルの通過回数を示している。

  • 通過記録はConfig.tjsのautoRecordPageShowingがtrueの場合のみ機能する
  • 通常のラベルもセーブ可能なラベルも記録対象になっている

なお、システム変数sfはkag.sflagsの別名(エイリアス)。

補足

栞の有無をチェックするには

実体のファイルの有無をチェック

実体のファイル(セーブデータ)そのものの有無をチェックするには、メソッドkag.getBookMarkFileNameAtNum()の戻り値をメソッドStorages.isExistentStorage()に渡せば良い。
ただし、erasebookmarkタグで栞が消去されているかどうかは、この方法では判らない。

; 栞2のファイルが存在するなら評価結果は真、そうでなければ偽になる
[if exp="Storages.isExistentStorage( kag.getBookMarkFileNameAtNum(2) )"]
  ; 栞2のファイルがあった場合の処理
[else]
  ; 栞2のファイルがなかった場合の処理
[endif]

(管理上の)栞の有無をチェック

実体のファイルの有無に関わらず、(管理上の)栞の有無をチェックするには、メソッドkag.getBookMarkDate()の戻り値が空文字かどうかを調べれば良い。
こちらの方法ではerasebookmarkタグで栞が消去された場合、「栞は存在しない」という意味の評価結果になる。
KAGWindow.eraseBookMark()の実装も参照のこと。

; 栞2が存在するなら評価結果は真、そうでなければ偽になる
[if exp="kag.getBookMarkDate(2) != ''"]
  ; 栞2が存在する場合の処理
[else]
  ; 栞2が存在しない場合の処理
[endif]

kag.getBookMarkPageName()メソッドを使って調べることも可能。

; 栞2が存在するなら評価結果は真、そうでなければ偽になる
[if exp="kag.getBookMarkPageName(2) != '(未設定)'"]
  ; 栞2が存在する場合の処理
[else]
  ; 栞2が存在しない場合の処理
[endif]