AnkuLua 發表於 Sept 27, 2015 7:40:48 GMT
AnkuLua 提供一些函數讓腳本更彈性
toast(String)
在螢幕上短暫秀出字串String
對話相關函數
下列函數提供腳本徵詢使用者輸入的機制
AnkuLua 稱這些介面為 dialog.
Dialog 提供下列元素, TextView, EditText, CheckBox, RadioGroup 和RadioButton.
TextView, EditText 和CheckBox 基本都是排成橫的一排
要開始新的一排,請使 newRow() 函數
RadioGroup (單選按鈕群)可以含有許多單選按鈕(RadioButton). 只有其中一個按鈕可以被選取
以下為相關函數的說明
dialogInit()
dialogInit() 起始一個新的dialog設計。每一個新的dialog都應該以此函數開始
addTextView(String)
addTextView 在此diglog加入一個字串
addEditText(String argument, String defaultValue)
addEditText 將要求使用者輸入一個字串,輸入字串將被指定到一個新的全域變數argument.
defaultValue 是此字串的默認值
addEditPassword(String argument, String defaultValue)
addEditPassword將要求使用者輸入一個字串,輸入字串將被指定到一個新的全域變數argument.
defaultValue 是此字串的默認值
addEditPassword 的輸入界面使用密碼形式隱藏輸入文字
addEditNumber(String argument, integer defaultValue)
addEditNumber 將要求使用者輸入一個數字,輸入數字將被指定到一個新的全域變數argument.
addCheckBox(String argument, String text, boolean defaultValue)
addCheckBox 將產生一個帶著字串text的選取方塊(Check Box)。布林值defaultValue 代表此方塊默認值是選取(true)與否(false)
選取方塊結果將被指定到一新的全域變數 argument.
newRow()
結束前一排並開始新的一排
addRadioGroup(String argument, integer defaultIndex)
這一函數會產生一個新的單選按鈕群,所有後續 addRadioButton 函數將被加入這個按鈕群,直到下一個 addRadioGroup/addRelativeRadioGroup 為止
被選取按鈕的指數將被指定到一個新的全域變數 argument.
addRadioButton(String text, integer index)
這一函數新增一個帶字串 text 的單選按鈕。整數 index 代表的是這一個按鈕被選取時的數值
addRelativeRadioGroup(String argument, integer defaultIndex, integer maxColumn)
這一函數會產生一個新的單選按鈕群,與addRadioGroup只有縱向單列不同的是,addRelativeRadioGroup是有橫向多欄;最多可以到maxColumn欄。所有後續 addRadioButton 函數將被加入這個按鈕群,直到下一個 addRadioGroup/addRelativeRadioGroup 為止
被選取按鈕的指數將被指定到一個新的全域變數 argument.
addRelativeRadioGroupNewRow()
在相對單選按鈕群(relative radio group)中結束前一排並開始新的一排。有利於編排欄位對齊。
關於addRelativeRadioGroup() 和 addRelativeRadioGroupNewRow() 使用方法可以參考下方腳本
以上腳本執行結果
addSpinner(String argument, Table of String, String defaultValue)
addSpinner 會產生一個選單按鈕, 選單內容為一個字串表格
被選取按鈕的字串將被指定到一個新的全域變數 argument.
addSpinnerIndex(String argument, Table of String, String defaultValue)
addSpinnerIndex(String argument, Table of String, integer defaultValue)
功能與addSpinner相同,但返回值為選取到項目的項次(整數,從一開始)
addSeparator()
新增一分隔線。此一函數同時會結束前一排並開始新的一排
dialogShow(String title)
dialogShow 會秀出從dialogInit 到此為止所有的digalog 相關元素,對話框將帶著標題title
dialogShowFullScreen(String title)
與dialogShow 作用相同,只是對話框是全螢幕(幾乎啦)
默認值與偏愛值
如上所示,每一需要提供結果的函數都帶有一個默認值,如果這一dialog是第一次呼叫,默認值將會成為起始值
AnkuLua 對每一個需要回傳值得使用者介面函數都提供了偏愛值得機制。也就是說AnkuLua會記得使用者上次所輸入或選取的值,當下次同一對話被使用時,這些偏愛值將取代默認值成為介面上的起始值。
範例
原始碼下載連結
原始碼如下
第一次呼叫時
如果依照下面更改和選取
在選擇OK後
為了展示偏愛值的效果,再次點擊play 按鈕
畫面起始將秀出上次結果
偏好設定(preference)
雖然dialog 會將上次執行結果儲存起來,但必須在呼叫diaglog 後才能得到這個值,有些受限
另外有些地方的值與dialog 無關,如果想儲存這些值可以使用下方函數
preferencePutString(String arg, String value), preferencePutNumber(String arg, Number value), preferencePutBoolean(String arg, Boolean value)
將value 存到arg變數
返回值為成功(true)與否(false)
preferenceGetString(String arg, String defValue), preferenceGetNumber(String arg, Number defValue), preferenceGetBoolean(String arg, Boolean defValue)
如果arg 之前有儲存,則返回儲存的值;否則返回defValue
removePreference(String arg)
移除已經記住的偏好值直接用默認值
其他
setButtonPosition(int x, int y)
setButtonPosition(Location loc)
設定開始(停止)鈕的位置,可以防止腳本誤擊停止鈕
[下一頁]: 先進函數
[上一頁]: 基本物件與函數
[首頁]: AnkuLua介紹
toast(String)
在螢幕上短暫秀出字串String
對話相關函數
下列函數提供腳本徵詢使用者輸入的機制
AnkuLua 稱這些介面為 dialog.
Dialog 提供下列元素, TextView, EditText, CheckBox, RadioGroup 和RadioButton.
TextView, EditText 和CheckBox 基本都是排成橫的一排
要開始新的一排,請使 newRow() 函數
RadioGroup (單選按鈕群)可以含有許多單選按鈕(RadioButton). 只有其中一個按鈕可以被選取
以下為相關函數的說明
dialogInit()
dialogInit() 起始一個新的dialog設計。每一個新的dialog都應該以此函數開始
addTextView(String)
addTextView 在此diglog加入一個字串
addEditText(String argument, String defaultValue)
addEditText 將要求使用者輸入一個字串,輸入字串將被指定到一個新的全域變數argument.
defaultValue 是此字串的默認值
addEditPassword(String argument, String defaultValue)
addEditPassword將要求使用者輸入一個字串,輸入字串將被指定到一個新的全域變數argument.
defaultValue 是此字串的默認值
addEditPassword 的輸入界面使用密碼形式隱藏輸入文字
addEditNumber(String argument, integer defaultValue)
addEditNumber 將要求使用者輸入一個數字,輸入數字將被指定到一個新的全域變數argument.
addCheckBox(String argument, String text, boolean defaultValue)
addCheckBox 將產生一個帶著字串text的選取方塊(Check Box)。布林值defaultValue 代表此方塊默認值是選取(true)與否(false)
選取方塊結果將被指定到一新的全域變數 argument.
newRow()
結束前一排並開始新的一排
addRadioGroup(String argument, integer defaultIndex)
這一函數會產生一個新的單選按鈕群,所有後續 addRadioButton 函數將被加入這個按鈕群,直到下一個 addRadioGroup/addRelativeRadioGroup 為止
被選取按鈕的指數將被指定到一個新的全域變數 argument.
addRadioButton(String text, integer index)
這一函數新增一個帶字串 text 的單選按鈕。整數 index 代表的是這一個按鈕被選取時的數值
addRelativeRadioGroup(String argument, integer defaultIndex, integer maxColumn)
這一函數會產生一個新的單選按鈕群,與addRadioGroup只有縱向單列不同的是,addRelativeRadioGroup是有橫向多欄;最多可以到maxColumn欄。所有後續 addRadioButton 函數將被加入這個按鈕群,直到下一個 addRadioGroup/addRelativeRadioGroup 為止
被選取按鈕的指數將被指定到一個新的全域變數 argument.
addRelativeRadioGroupNewRow()
在相對單選按鈕群(relative radio group)中結束前一排並開始新的一排。有利於編排欄位對齊。
關於addRelativeRadioGroup() 和 addRelativeRadioGroupNewRow() 使用方法可以參考下方腳本
setImmersiveMode(true)
dialogInit()
addRelativeRadioGroup("rrgIndex", 11, 3)
addRadioButton("Button 11", 11)
addRadioButton("Button 12", 12)
addRadioButton("Button 13", 13)
addRadioButton("Button 21", 21)
addRelativeRadioGroupNewRow()
addRadioButton("Button 31", 31)
addRadioButton("Button 32", 32)
addRadioButton("Button 33", 33)
addRadioButton("Button 41", 41)
addRadioButton("Button 42", 42)
addRelativeRadioGroupNewRow()
addRadioButton("Button 51", 51)
newRow()
addSeparator()
addRelativeRadioGroup("rrgIndex2", 12, 2)
addRadioButton("Button 11", 11)
addRadioButton("Button 12", 12)
addRadioButton("Button 21", 21)
addRadioButton("Button 22", 22)
addRelativeRadioGroupNewRow()
addRadioButton("Button 31", 31)
addRadioButton("Button 32", 32)
addRadioButton("Button 41", 41)
addRelativeRadioGroupNewRow()
addRadioButton("Button 51", 51)
addRelativeRadioGroupNewRow()
addRadioButton("Button 61", 61)
dialogShowFullScreen("Relative Radio Group Test")
print("rrgIndex = " .. rrgIndex)
print("rrgIndex2 = " .. rrgIndex2)
以上腳本執行結果
addSpinner(String argument, Table of String, String defaultValue)
addSpinner 會產生一個選單按鈕, 選單內容為一個字串表格
被選取按鈕的字串將被指定到一個新的全域變數 argument.
allTroops = {"barbarian", "archer", "giant", "goblin", "wallBreaker",
"balloon", "wizard", "healer", "dragon", "PEKKA" }
addSpinner("training1", allTroops, allTroops[1])
addSpinnerIndex(String argument, Table of String, String defaultValue)
addSpinnerIndex(String argument, Table of String, integer defaultValue)
功能與addSpinner相同,但返回值為選取到項目的項次(整數,從一開始)
addSeparator()
新增一分隔線。此一函數同時會結束前一排並開始新的一排
dialogShow(String title)
dialogShow 會秀出從dialogInit 到此為止所有的digalog 相關元素,對話框將帶著標題title
dialogShowFullScreen(String title)
與dialogShow 作用相同,只是對話框是全螢幕(幾乎啦)
默認值與偏愛值
如上所示,每一需要提供結果的函數都帶有一個默認值,如果這一dialog是第一次呼叫,默認值將會成為起始值
AnkuLua 對每一個需要回傳值得使用者介面函數都提供了偏愛值得機制。也就是說AnkuLua會記得使用者上次所輸入或選取的值,當下次同一對話被使用時,這些偏愛值將取代默認值成為介面上的起始值。
範例
原始碼下載連結
原始碼如下
removePreference("cbValue")
dialogInit()
addTextView("TextViewMessage")
addTextView("TextViewMessage")
addEditText("etValue", "Input EditText value:")
newRow()
addCheckBox("cbValue", "Check Box", false)
addRadioGroup("rgIndex", 1)
addRadioButton("Button 1", 1)
addRadioButton("Button 10", 10)
addRadioButton("Button 11", 11)
newRow()
spinnerItems = {"item 1", "item 2", "item 3", "item 4", "item 5", "item 6", "item 7"}
addTextView("Spinner: ")
addSpinner("spValue", spinnerItems, "item 3")
newRow()
spinnerItems = {"Indexitem 1", "Indexitem 2", "Indexitem 3", "Indexitem 4", "Indexitem 5", "Indexitem 6", "Indexitem 7"}
addTextView("Spinner Index: ")
addSpinnerIndex("spValueIndex", spinnerItems, "Indexitem 3")
newRow()
addTextView("Text End")
dialogShow("Dialog Test")
print(etValue)
if (cbValue) then
print ("CheckBox true")
else
print("CheckBox false")
end
toast ("Selected Button = "..rgIndex)
print ("Selected Button = "..rgIndex)
print ("spValue = " .. spValue)
print ("spValueIndex = " .. spValueIndex)
第一次呼叫時
如果依照下面更改和選取
在選擇OK後
為了展示偏愛值的效果,再次點擊play 按鈕
畫面起始將秀出上次結果
偏好設定(preference)
雖然dialog 會將上次執行結果儲存起來,但必須在呼叫diaglog 後才能得到這個值,有些受限
另外有些地方的值與dialog 無關,如果想儲存這些值可以使用下方函數
preferencePutString(String arg, String value), preferencePutNumber(String arg, Number value), preferencePutBoolean(String arg, Boolean value)
將value 存到arg變數
返回值為成功(true)與否(false)
preferenceGetString(String arg, String defValue), preferenceGetNumber(String arg, Number defValue), preferenceGetBoolean(String arg, Boolean defValue)
如果arg 之前有儲存,則返回儲存的值;否則返回defValue
print ("======= simple test ===========")
print("int_test = " .. preferenceGetNumber("int_test", 6))
preferencePutNumber("int_test", 9)
print("int_test = " .. preferenceGetNumber("int_test", 6))
print("string_test = " .. preferenceGetString("string_test", "new"))
preferencePutString("string_test", "default")
print("string_test = " .. preferenceGetString("string_test", "test"))
print("boolean = " .. tostring(preferenceGetBoolean("boolean", true)))
preferencePutBoolean("boolean", false)
print("boolean = " .. tostring(preferenceGetBoolean("boolean", false)))
removePreference(String arg)
移除已經記住的偏好值直接用默認值
其他
setButtonPosition(int x, int y)
setButtonPosition(Location loc)
設定開始(停止)鈕的位置,可以防止腳本誤擊停止鈕
[下一頁]: 先進函數
[上一頁]: 基本物件與函數
[首頁]: AnkuLua介紹