2015-08-23 112 views
-1

有一個文本字段,我在其中設置默認文本「暱稱」作爲水印。如果用戶在文本字段中輸入文本「暱稱」,我想提醒他輸入的文本不能是暱稱。問題是我怎麼知道用戶輸入文本「暱稱」或它已經是一個水印。動作腳本3

+1

你能證明你到目前爲止嘗試過嗎? – xxbbcc

回答

1

如果您要在TextField中真正擁有「暱稱」,則必須檢查該字段是否已被編輯。例如:

private var wasTextFieldUserEdited:Boolean = false; 

private function init() : void 
{ 
    var tf:TextField = new TextField(); 
    tf.type = TextFieldType.INPUT; 
    tf.text = "nickname"; 
    tf.addEventListener(Event.CHANGE, onChange); 
    tf.addEventListener(FocusEvent.FOCUS_OUT, onFocusOut); 

    // ... 
} 

private function onChange(e:Event) : void 
{ 
    wasTextFieldUserEdited = true; 
} 

private function onFocusOut(e:FocusEvent) : void 
{ 
    if (wasTextFieldUserEdited) 
    { 
     if (tf.text == "nickname") 
     { 
      trace("CAN'T USE THE WATERMARK!"); 
     } 
     else 
     { 
      trace("NAME IS OK!"); 
     } 

     // ... 
    } 
} 

也就是說,你應該考慮在INPUT TextField中根本沒有「暱稱」。相反,您可能會在INPUT之一(相同的x,y)下方直接放置另一個DYNAMIC TextField,並在INPUT TextField獲取FocusEvent.FOCUS_IN事件時將其隱藏。在這種情況下,您將啓動INPUT TextField爲空白。一旦用戶離開INPUT TextField,您可以再次顯示DYNAMIC TextField(帶有「暱稱」水印),如果用戶輸入了空白或使用了水印文本。

如果您使用「暱稱」的人遇到的問題僅僅是您無法確定是否輸入了任何新文本,則上述解決方案將允許您知道有人實際上有意鍵入了「暱稱」,並且所以可能允許你允許。