Actionscript 3 在AS3的输入文本字段中按回车键
我想在用户填写AS3中的输入文本字段时捕捉回车键。 我想我必须这样做:Actionscript 3 在AS3的输入文本字段中按回车键,actionscript-3,Actionscript 3,我想在用户填写AS3中的输入文本字段时捕捉回车键。 我想我必须这样做: inputText.addEventListener(Event. ? , func); function func(e:Event):void{ if(e. ? == "Enter"){ doSomething(); } } 但我找不到最好的办法。 顺便说一下,输入文本有一个限制: inputText.restrict = "0-9"; 我应该在限
inputText.addEventListener(Event. ? , func);
function func(e:Event):void{
if(e. ? == "Enter"){
doSomething();
}
}
但我找不到最好的办法。
顺便说一下,输入文本有一个限制:
inputText.restrict = "0-9";
我应该在限制中添加enter键吗
inputText.restrict = "0-9\n";
提前感谢。您使用的是文本字段还是文本输入 按下Enter键时,TextInput将发送一个Enter事件。有关这方面的更多信息,请访问
我不确定这对文本字段是如何起作用的。正确答案 当文本字段被聚焦时,您可以轻松地监听键盘事件 只需在文本字段中直接添加一个KEY_DOWN事件,然后执行任何您想要的操作
// get key presses only when the textfield is being edited
inputText.addEventListener(KeyboardEvent.KEY_DOWN,handler);
function handler(event:KeyboardEvent){
// if the key is ENTER
if(event.charCode == 13){
// your code here
doSomething();
}
}
另请注意,textfields还发送其他有用的事件:
- 当用户修改时(如果是输入文本字段)——Event.CHANGE
- 当用户键入文本时(如果是输入文本字段)——TextEvent.text\u输入
- 单击链接时(如果是HTML文本)--TextEvent.link
- 当用户滚动时(如果其多行和内容不匹配)——Event.SCROLL
先前的错误答案: 我认为真正做你想做的事情的唯一方法是有点复杂 基本上,当按下Enter键时,您无法从常规文本字段中获取任何将触发的事件。你必须在附近工作 一个想法是在文本字段中收听焦点事件。当它有焦点时,你在舞台上为键盘事件添加一个监听器,并检查按下的键是否为Enter,如果是,则触发你的动作,否则跳过 示例代码:
inputText.addEventListener(FocusEvent.FOCUS_IN,textInputHandler);
inputText.addEventListener(FocusEvent.FOCUS_OUT,textInputHandlerOut);
function textInputHandler(event:FocusEvent):void {
//our textfield has focus, we want to listen for keyboard events.
stage.addEventListener( KeyboardEvent.KEY_DOWN, keyDownHandler);
}
function textInputHandlerOut(event:FocusEvent):void {
//our textfield lost focus, remove our listener.
stage.removeEventListener( KeyboardEvent.KEY_DOWN, keyDownHandler);
}
function keyDownHandler( e:KeyboardEvent ):void{
//a key was pressed, check if it was Enter => charCode 13.
if( e.charCode == 13 ){
//ok, enter was pressed. Do your thing.
trace("We pressed enter, doSomething" )
}
}
对于那些想知道如何使用TextInput字段而不是TextField来处理“Enter”按键的人,下面是一个简单的过程:
import fl.events.ComponentEvent
...
myListeningField.addEventListener(ComponentEvent.ENTER, listenerMethod);
function listenerMethod(e:Event):void{
//DO SOME STUFF
}
我使用文本工具,然后设置该框为输入文本。我试图使用inputText.enter=函数(e:Object){bla},但它抛出错误#1056:无法在flash.text.TextField中创建属性enter。谢谢。我使用了:inputText.addEventListener(KeyboardEvent.KEY_DOWN,handler);函数处理程序(event:KeyboardEvent){if(event.charCode==13){doSomething();}}}并且它可以工作。谢谢。在发表这些胡说八道之前,请检查一下你的事实。这个问题已经有一年多的历史了,超过4000人被误导,认为这些简单的事情是困难的。事实上,这在使用AIR的iPhone上不起作用,你必须使用Event。更改文本字段,KeyboardEvent不起作用。此外,当软键盘上指示“回车”时,回车“\r”并不总是由Event.CHANGE指示。我不确定是否有可靠且一致的方法来检测车厢返回。