使用 TextInput 組件

此 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 組件實體設定下列編寫參數: editable displayAsPassword maxChars restrict text 。這些參數都具有相對應的 ActionScript 同名屬性。如需有關這些參數可能值的詳細資訊,請參閱 適用於 Adobe Flash Platform 的 ActionScript 3.0 參考 中的 TextInput 類別。

您可以撰寫 ActionScript 利用 TextInput 組件的屬性、方法和事件,來控制其各種選項及其它選項。如需詳細資訊,請參閱 適用於 Adobe Flash Platform 的 ActionScript 3.0 參考 中的 TextInput 類別。

建立具有 TextInput 組件的應用程式

下列程序說明如何將 TextInput 組件加入應用程式。此範例使用兩個 TextInput 欄位來接收及確認密碼。事件偵聽程式將用於檢查是否已經輸入至少八個字元的密碼,以及兩個欄位中輸入的文字是否相符。

  1. 建立新的 Flash (ActionScript 3.0) 文件。

  2. 將 Label 組件從「組件」面板拖曳到「舞台」,然後在「屬性」檢測器中為組件指定下列值:

    • 輸入實體名稱 pwdLabel

    • 輸入 100 做為 W 值。

    • 輸入 50 做為 X 值。

    • 輸入 150 做為 Y 值。

    • 在「參數」區段,輸入 Password: 做為 text 參數的值。

  3. 將第二個 Label 組件從「組件」面板拖曳到「舞台」,然後為組件指定下列值:

    • 輸入實體名稱 confirmLabel

    • 輸入 100 做為 W 值。

    • 輸入 50 做為 X 值。

    • 輸入 200 做為 Y 值。

    • 在「參數」區段,輸入 Confirm Password: 做為 text 參數的值。

  4. 將 TextInput 組件從「組件」面板拖曳到「舞台」,然後為組件指定下列值:

    • 輸入實體名稱 pwdTi

    • 輸入 150 做為 W 值。

    • 輸入 190 做為 X 值。

    • 輸入 150 做為 Y 值。

    • 在「參數」區段,按兩下 displayAsPassword 參數的值,並選取 true 。這麼做會使得文字欄位中輸入的值以星號遮蔽。

  5. 將第二個 TextInput 組件從「組件」面板拖曳到「舞台」,然後為組件指定下列值:

    • 輸入實體名稱 confirmTi

    • 輸入 150 做為 W 值。

    • 輸入 190 做為 X 值。

    • 輸入 200 做為 Y 值。

    • 在「參數」區段,按兩下 displayA s Password 參數的值,並選取 true 。這麼做會使得文字欄位中輸入的值以星號遮蔽。

  6. 開啟「動作」面板,選取主要「時間軸」中的「影格 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.」訊息。如果兩組密碼相符且至少都是八個字元,範例則在「輸出」面板中顯示輸入的值。

  7. 選取「控制 > 測試影片」。

使用 ActionScript 建立 TextInput 實體

下列範例使用 ActionScript 建立 TextInput 組件。此範例也會建立 Label,以提示使用者輸入自己的名稱。組件的 restrict 屬性將設定為只允許大小寫字母、句號和空格。另外還會建立 TextFormat 物件,用來格式化 Label 和 TextInput 組件中的文字。

  1. 建立新的 Flash (ActionScript 3.0) 文件。

  2. 將 TextInput 組件從「組件」面板拖曳到「元件庫」面板。

  3. 將 Label 組件從「組件」面板拖曳到「元件庫」面板。

  4. 開啟「動作」面板,選取主要「時間軸」中的「影格 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); 
  5. 選取「控制 > 測試影片」,執行應用程式。