您好我正在尝试使用以下代码将侦听器添加到文本字段中以清除字段,但我收到错误:
“参数监听器必须是非空的”
这是我正在使用的代码:
//pos is the instance name of the textfield
var posText = currCard.cardBack.pos;
posText.addEventListener(MouseEvent.CLICK, clearText);
posText.type = TextFieldType.INPUT;
currCard.hit.visible = false;
function clearText(e:MouseEvent) {
trace ("clear");
//posHolder = posText.text;
//posText.text = "";
}
我应该补充说,这个文本字段在舞台上作为动态文本字段开始。在上面的代码中,我将其类型更改为输入,因此可能会影响事物。
我正在尝试设置该字段,以便当用户在文本字段中单击时,将显示一个光标影片剪辑,并且该字段中的文本将被删除,并且当它们离开文本字段并单击其他位置时,文本被接受,文本字段转换回动态字段,基本上将输入的文本“锁定”到字段中。
答案 0 :(得分:2)
var tfDynamic:TextField = new TextField( )
stage.addChild(tfDynamic )
tfDynamic.width = 100
tfDynamic.height = 20
tfDynamic.x = 10
tfDynamic.y = 10
tfDynamic.border = true
tfDynamic.type = TextFieldType.DYNAMIC;
tfDynamic.text = "hello";
tfDynamic.addEventListener(FocusEvent.FOCUS_OUT, onFocusOut)
var savedText:String
function onFocusOut( e:FocusEvent ):void{
trace('onFocusOut')
savedText = tfDynamic.text
tfDynamic.type = TextFieldType.DYNAMIC;
}
tfDynamic.addEventListener(MouseEvent.CLICK, onclick )
function onclick( e:MouseEvent ):void{
trace('onclick')
tfDynamic.text = "";
tfDynamic.type = TextFieldType.INPUT;
}
答案 1 :(得分:2)
如果我必须清除文本字段,我会使用 FOCUS_IN
。如果您使用onclick
,当文本字段具有焦点并再次单击它时,文本字段将再次清除...我不确定您想要的是什么。
答案 2 :(得分:1)
我不建议在这种情况下使用“MouseEvent.CLICK”,而是使用“FocusEvent.FOCUS_OUT”,因为可以使用Tab键选择字段