此 TextInput 組件是原生 ActionScript TextField 物件的包裝函式,屬於單行文字組件。如果您需要多行的文字欄位,請使用 TextArea 組件。例如,您可以使用 TextInput 組件做為表單中的密碼欄位。您也可以設定偵聽程式,在使用者以 Tab 鍵移出欄位時,檢查欄位內是否有足夠的字元。偵聽程式可以顯示錯誤訊息,提醒必須至少輸入幾個字元。
您可以使用
setStyle()
方法設定
textFormat
屬性,以變更 TextInput 實體中顯示的文字樣式。TextInput 組件也可以格式化為 HTML 格式,或做為掩飾文字的密碼欄位。
與 TextInput 組件的使用者互動
應用程式可以啟用或停用 TextInput 組件。處於停用狀態時,便不接受滑鼠或鍵盤輸入。若處於啟用狀態,則其焦點、選取範圍和導覽規則如同 ActionScript TextField 物件。當 TextInput 實體成為焦點時,您也可以使用下列按鍵加以控制:
按鍵
|
說明
|
方向鍵
|
將插入點向左或向右移動一個字元。
|
Shift+Tab
|
將焦點移到上一個物件。
|
Tab 鍵
|
將焦點移到下一個物件。
|
如需有關控制焦點的詳細資訊,請參閱 Flash Professional 的
ActionScript 3.0 參考
中的「FocusManager 類別」,以及
使用 FocusManager
。
進行編寫時,每個 TextInput 實體的即時預覽會反映您在「屬性」檢測器或「組件檢測器」中對參數的變更。即時預覽時無法選取文字,也不能將文字輸入「舞台」上的組件實體。
將 TextInput 組件加入應用程式時,您可以利用「輔助功能」面板讓螢幕朗讀程式能夠存取此組件。
建立具有 TextInput 組件的應用程式
下列程序說明如何將 TextInput 組件加入應用程式。此範例使用兩個 TextInput 欄位來接收及確認密碼。事件偵聽程式將用於檢查是否已經輸入至少八個字元的密碼,以及兩個欄位中輸入的文字是否相符。
-
建立新的 Flash (ActionScript 3.0) 文件。
-
將 Label 組件從「組件」面板拖曳到「舞台」,然後在「屬性」檢測器中為組件指定下列值:
-
將第二個 Label 組件從「組件」面板拖曳到「舞台」,然後為組件指定下列值:
-
將 TextInput 組件從「組件」面板拖曳到「舞台」,然後為組件指定下列值:
-
將第二個 TextInput 組件從「組件」面板拖曳到「舞台」,然後為組件指定下列值:
-
開啟「動作」面板,選取主要「時間軸」中的「影格 1」,然後輸入下列 ActionScript 程式碼:
function tiListener(evt_obj:Event){
if(confirmTi.text != pwdTi.text || confirmTi.length < 8)
{
trace("Password is incorrect. Please reenter it.");
}
else {
trace("Your password is: " + confirmTi.text);
}
}
confirmTi.addEventListener("enter", tiListener);
此程式碼會對 TextInput 實體 (名為
confirmTi
) 設定
enter
事件處理常式。如果兩組密碼不相符,或是使用者輸入少於八個字元,範例就會顯示「Password is incorrect.Please reenter it.」訊息。如果兩組密碼相符且至少都是八個字元,範例則在「輸出」面板中顯示輸入的值。
-
選取「控制 > 測試影片」。
使用 ActionScript 建立 TextInput 實體
下列範例使用 ActionScript 建立 TextInput 組件。此範例也會建立 Label,以提示使用者輸入自己的名稱。組件的
restrict
屬性將設定為只允許大小寫字母、句號和空格。另外還會建立 TextFormat 物件,用來格式化 Label 和 TextInput 組件中的文字。
-
建立新的 Flash (ActionScript 3.0) 文件。
-
將 TextInput 組件從「組件」面板拖曳到「元件庫」面板。
-
將 Label 組件從「組件」面板拖曳到「元件庫」面板。
-
開啟「動作」面板,選取主要「時間軸」中的「影格 1」,然後輸入下列 ActionScript 程式碼:
import fl.controls.Label;
import fl.controls.TextInput;
var nameLabel:Label = new Label();
var nameTi:TextInput = new TextInput();
var tf:TextFormat = new TextFormat();
addChild(nameLabel);
addChild(nameTi);
nameTi.restrict = "A-Z .a-z";
tf.font = "Georgia";
tf.color = 0x0000CC;
tf.size = 16;
nameLabel.text = "Name: " ;
nameLabel.setSize(50, 25);
nameLabel.move(100,100);
nameLabel.setStyle("textFormat", tf);
nameTi.move(160, 100);
nameTi.setSize(200, 25);
nameTi.setStyle("textFormat", tf);
-
選取「控制 > 測試影片」,執行應用程式。
|
|
|