【问题标题】:keyboard ENTER key dont work for tlf text input?键盘 ENTER 键不适用于 tlf 文本输入?
【发布时间】:2011-12-14 10:03:54
【问题描述】:

我在阶段有一个 tlf 文本输入,我想在按下输入键时为这个对象调度 ahndler,但我不能这样做

import flash.events.KeyboardEvent;
import flash.ui.Keyboard;
import flash.display.Sprite;
tlf.addEventListener(KeyboardEvent.KEY_DOWN,handler);
function handler(event:KeyboardEvent)
{
    if (event.keyCode = Keyboard.ENTER)
    {
        trace('enter key is detect');
    }
}

我的错误在哪里?

【问题讨论】:

    标签: flash actionscript-3 events keyboard tlf


    【解决方案1】:

    运算符 '=' 用于赋值,而不是比较。 EQUAL TO 运算符是 '=='。所以,在你的代码中:

     if (event.keyCode = Keyboard.ENTER)
    

    应该是:

    if (event.keyCode == Keyboard.ENTER)
    

    假设您在舞台上有一个文本输入,它被称为“tlf”,这将起作用:

    import flash.events.KeyboardEvent;
    import flash.ui.Keyboard;
    import flash.display.Sprite;
    
    tlf.addEventListener(KeyboardEvent.KEY_DOWN,key_down_handler);
    
    function key_down_handler(ev:KeyboardEvent)
    {
        if (ev.keyCode == Keyboard.ENTER)
        {
            trace('enter key!!!!');
        }
    }
    

    一个建议:尝试为您的变量和函数赋予更有意义的名称,例如,如果它是输入文本字段,则不要仅使用“tlf”:“tlf_input_text”,而不要仅使用“处理程序”: 'key_down_handler' 或类似的东西。它将帮助其他人(以及您自己,从长远来看)阅读和理解您的代码。

    【讨论】:

    • 另外,如果在 Flash IDE 中进行测试,请确保禁用键盘快捷键以确保所有按键都被 SWF 捕获。
    • danii tlf 处理事件有点不同
    【解决方案2】:

    TLFText 处理 Enter 键的方式与经典文本不同。对于 TLF,请使用:

    tlf.addEventListener(TextEvent.TEXT_INPUT, textInputHandler);
    
    function textInputHandler(evt:TextEvent):void {
        if (evt.text=="\r") {
            trace('THE ENTER KEY WORKS NOW');
        }
    }
    

    【讨论】:

      【解决方案3】:

      我刚刚遇到了同样的问题。

      对我来说解决它的最佳方法是将 (useCapture=true) 添加到事件侦听器。

      所以: tlf.addEventListener(KeyboardEvent.KEY_DOWN,handler);

      变成这样: tlf.addEventListener(KeyboardEvent.KEY_DOWN,handler,true);

      我不认为之前提供的 2 个答案令人满意。 一个希望编码器停止使用 TLF,另一个希望他停止使用 KeyboardEvent。

      参考: http://forums.adobe.com/thread/826424

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-09-15
        • 2018-05-27
        • 1970-01-01
        • 1970-01-01
        • 2021-06-20
        • 2017-04-18
        • 1970-01-01
        相关资源
        最近更新 更多