2015-08-23 115 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(带有“昵称”水印),如果用户输入了空白或使用了水印文本。

如果您使用“昵称”的人遇到的问题仅仅是您无法确定是否输入了任何新文本,则上述解决方案将允许您知道有人实际上有意键入了“昵称”,并且所以可能允许你允许。