actionscript-3 - 在 AS3 的输入文本字段中捕获输入键

标签 actionscript-3

当用户在 AS3 中填充输入文本字段时,我想捕捉回车键。
我想我必须做这样的事情:

    inputText.addEventListener(Event. ? , func);
    function func(e:Event):void{
       if(e. ? == "Enter"){
          doSomething();
       }
    }

但我找不到最好的方法来做到这一点。
顺便说一句,输入文本有一个限制:
inputText.restrict = "0-9";

我应该将回车键添加到限制中吗?
inputText.restrict = "0-9\n";

提前致谢。

最佳答案

更正答案

您可以轻松地监听文本字段聚焦时发生的键盘事件。

只需将 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();
   }
}

另外,文本字段还发送其他有用的事件:
  • 当用户修改时(如果它是输入文本字段)--Event.CHANGE
  • 当用户输入文本时(如果是输入文本字段)-- TextEvent.TEXT_INPUT
  • 单击链接时(如果是 HTML 文本)-- TextEvent.LINK
  • 当用户滚动时(如果它的多行和内容不适合)-- Event.SCROLL


  • 上一个错误答案:

    我认为真正做你想做的事情的唯一方法有点复杂。

    基本上,您无法从按下 Enter 键时触发的常规 TextField 中获取任何事件。你必须解决...

    一种想法是监听文本字段的焦点事件。当它获得焦点时,您将一个监听器添加到舞台上的键盘事件并检查按下的键是否为 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" )
        }
    }
    

    关于actionscript-3 - 在 AS3 的输入文本字段中捕获输入键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2297368/

    相关文章:

    actionscript-3 - 控制Flash中嵌入式SWF中的声音

    actionscript-3 - `root` 不同地方的变化

    actionscript-3 - 如何限制用户访问webview中的某些url?

    actionscript-3 - 如何在 Flash AS3 中检测碰撞检测?

    actionscript-3 - Actionscript 3.0 打开 Windows 资源管理器

    iphone - AIR Mobile Live channel DVR URL 不适用于 iPhone,但适用于所有 Android 手机?

    actionscript-3 - Google Chrome 中的 Flash 音频滞后

    actionscript-3 - 我如何停止除某些声音以外的所有声音?

    android - 弹性 4.6 : Get the current location (fast as possible)

    PHP 无法从 ActionScript3 接收参数