将ENTER键重定向到不同的命令(AS3)

时间:2014-08-06 15:14:08

标签: actionscript-3 keycode

我有一个文本框,我希望每当一个人点击回车键 INSTEAD OF 添加额外的行时,就会执行空格键。我使用以下代码,但无济于事:

txtVerbs.addEventListener(KeyboardEvent.KEY_DOWN, enterkey);
function enterkey(event:KeyboardEvent):void{
    if (event.keyCode == 13){event.keyCode == 32}}

1 个答案:

答案 0 :(得分:-1)

试试这个:

txtVerbs.addEventListener(KeyboardEvent.KEY_DOWN, enterkey);
function enterkey(event:KeyboardEvent):void{
    if (event.keyCode == Keyboard.ENTER){ // you should use the Keyboard constants instead of the hard value
        event.preventDefault();
        event.stopImmediatePropagation();
        txtVerbs.text += ' ';
    }
}

stopImmediatePropagation()会阻止事件进一步传播,因此它会阻止任何其他KEY_DOWN事件进一步发生,并且应该(至少从我记忆中)停止KEY_UP也开火了。

preventDefault()取消事件的默认行为(如果可以取消)。如果内存服务,则按下的键可以取消。但是,如果不是,您也可以进行RegEx替换。

txtVerbs.addEventListener(KeyboardEvent.KEY_UP, enterkey);
function enterkey(event:KeyboardEvent):void{
    if (event.keyCode == Keyboard.ENTER){ // you should use the Keyboard constants instead of the hard value
        txtVerbs.text = txtVerbs.text.replace(/\r?\n/gm, ' ');
    }
}

那应该匹配任何换行符(在某些系统上是\ r \ n,在其他系统上只是\ n)并用空格替换