Actionscript 3 AS3 TextField-将值设置为“时不需要的回车”&引用;
我有一个输入文本字段和一个KeyboardEvent.KEY_甚至在舞台上的监听器上按下,以监听键盘。输入事件。事件侦听器将输入的文本添加到数组或其他内容中,然后清除文本字段。问题是,当Enter key事件触发且TextField值设置为“”时,它会在TextField中留下回车符,光标位于第二行。世界跆拳道联盟?我编写AS2和AS3已经很长时间了,以前从未遇到过这种情况。我疯了吗?请大家帮忙!:-) 示例:Actionscript 3 AS3 TextField-将值设置为“时不需要的回车”&引用;,actionscript-3,input,textfield,carriage-return,Actionscript 3,Input,Textfield,Carriage Return,我有一个输入文本字段和一个KeyboardEvent.KEY_甚至在舞台上的监听器上按下,以监听键盘。输入事件。事件侦听器将输入的文本添加到数组或其他内容中,然后清除文本字段。问题是,当Enter key事件触发且TextField值设置为“”时,它会在TextField中留下回车符,光标位于第二行。世界跆拳道联盟?我编写AS2和AS3已经很长时间了,以前从未遇到过这种情况。我疯了吗?请大家帮忙!:-) 示例: var myTextArray:Array = new Array(); stage
var myTextArray:Array = new Array();
stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown);
function onKeyDown(e:KeyboardEvent):void{
if(e.keyCode == Keyboard.ENTER){
if(_inputText.text != null){
myTextArray.push(_inputText.text);
}
_inputText.text = "";
}
}
如果您能够输入回车,这意味着文本字段是多行的,不是吗
您是否尝试在
键盘事件中清空输入文本。向上键事件侦听器回调函数?是否在文本字段处于焦点的情况下按enter键?在这种情况下,可能是在通过键盘操作更新文本字段的值之前调用了onKeyDown
。您可以在onKeyDown
中将文本字段设置为空字符串,然后flash向其添加新行
将文本输入事件侦听器添加到文本字段中,并将跟踪语句添加到两个事件处理程序中,以了解事件的顺序。如果您处于Flash创作模式(在IDE中),则需要在测试时取消选中控制->禁用键盘快捷键。还可以尝试为键创建一个“清理”处理程序这似乎是某种错误-我也明白了。如果您只是在构造函数(或任何地方)中设置textField.text=“”,似乎可以解决问题。只需将KEY\u DOWN替换为KEY\u UP即可。它解决了这个问题(至少对我来说)使用KEY\u DOWN->Your code->KEY\u UP->empty Field
inputfield.addEventListener(Event.CHANGE, onChange);
private function onChange(e:Event):void {
if ( inputfield.text.charCodeAt(inputfield.text.length - 1) == 13 ) {
inputfield.text = inputfield.text.substr(0, inputfield.text.length - 1);
}
}
例如(讨厌的代码):
我知道这是一个很老的问题,仍然想分享我的解决方案。我在fla文件中禁用了文本框的多行功能。在那之后,我在文本框中没有收到任何回车
Message.addEventListener(KeyboardEvent.KEY_DOWN, function(e:KeyboardEvent):void
{
if(e.keyCode == Keyboard.ENTER)
{
// Your code...
}
});
Message.addEventListener(KeyboardEvent.KEY_UP, function(e:KeyboardEvent):void
{
if(e.keyCode == Keyboard.ENTER)
{
Message.text = "";
}
});