2012年12月10日星期一

KAG內部教學(進階篇)---Yes/No Dialog(1)

(建議在閱讀本篇教學之前,請先閱讀KAG教學---flag,變數(1)TJS教學---function,函式(1))

(k ゚∀゚)<當我們嘗試在吉里吉里上執行讀檔或存檔時,吉里吉里顯示確認視窗來問是否真的想讀檔或存檔,這可以避免誤觸某些功能。然而,我們在某些情況下也想顯示一個確認視窗來確認玩家是否真的執行下去,我們可以用askYesNo()來進行詢問。

那個askYesNo()是什麼來的,是KAG裡的玩意?>( ゚ω゚ s)

(k ゚∀゚)<askYesNo()是在system資料夾的YesNoDialog.tjs檔案裡定義出來的,以下是使用askYesNo()的範例。

[eval exp="askYesNo('您是否想繼續執行下去','確認')"]



(k ゚∀゚)<askYesNo()可以指定兩個引數,第一個是指定確認視窗上顯示的文字,第二個是指定確認視窗上的標題,如果不指定第二個引數,預設是顯示「確認」。

(k ゚∀゚)<由於吉里吉里的確認視窗都是透過這個YesNoDialog.tjs去定義出來,所以這意味著修改它就改變了所有確認視窗的設定。

不過為什麼我按哪一個都沒有反應?>( ゚ω゚ s)

(k ゚∀゚)<這是當然啦,因為我們還沒有寫當玩家確認完後應該要做什麼。

(k ゚∀゚)<當玩家在確認視窗上按下Yes或No後,askYesNo()就會回傳true或false,true代表按下Yes,false代表按下No。

(k ゚∀゚)<而我們可以透過askYesNo()的回傳值來決定之後該做什麼,看看以下的範例。

[eval exp="tf.result=askYesNo('您是否想繼續執行下去','確認')"]
[if exp="tf.result"]
您按的是Yes
[else]
您按的是No
[endif]

(k ゚∀゚)<在上述的範例裡,我們利用變數result來儲存askYesNo()的回傳值,這就可以分辨玩家是按下Yes還是No。

雖然askYesNo()可以指定確認視窗上顯示的文字,不過這個「はい」跟「いいえ」有沒有辦法改變?>( ゚ω゚ s)

(k ゚∀゚)<修改方法可能有點麻煩,因為我們要直接修改YesNoDialog.tjs的內容。

(k ゚∀゚)<在YesNoDialog.tjs裡,我們可以修改yesButton.caption跟noButton.caption的值,例如如果我們將yesButton.caption跟noButton.caption的值分別修改成"是"跟"否",確認視窗就會變成以下的模樣。



哦!看起來終於有點像樣!>( ゚ω゚ s)

(k ゚∀゚)<不過由於是直接修改YesNoDialog.tjs的內容,所以其效果對所有確認視窗都會有影響,這點必須要留意。

(k ゚∀゚)<今次暫時說到這裡吧……

不要,我還想知道如何修改整個確認視窗,我一直都覺得這個確認視窗太簡陋了。>( ゚ω゚ s)

(k ゚∀゚)<這些麻煩的東西就留待下一次再說吧,下次再見。

沒有留言:

發佈留言