我如何编码paperjs key.isDown()组合

时间:2013-11-25 08:15:52

标签: paperjs

如何处理大写或选项的 shift + a 键?

a可以是任何关键字,例如1! /?

h shift + h 以大写字母获取H.

我正在尝试使用Paper.js构建一个WYSIWYG。

当我双击文本项目时,我希望能够更改文本。我有这个工作,但如果我点击 shift + a 得到A我得到shifta

2 个答案:

答案 0 :(得分:3)

!@#$%^&*()_+等字符应由onKeyDown正确处理。要处理大写字母,请检查shift-modifier是否处于活动状态:

function onKeyDown(event) {
    if (event.key == 'shift' || event.key == 'command' || event.key == 'option' || event.key == 'caps-lock' || event.key == 'control') return;
    if (event.modifiers.shift || event.modifiers.capsLock) {
        console.log('The ' + event.key.toUpperCase() + ' key was pressed!');
    }    
    else console.log('The ' + event.key + ' key was pressed!');
}

答案 1 :(得分:0)

function onKeyDown(event) {
    if (event.key == 'shift' || event.key == 'command' || event.key == 'option' || event.key == 'caps-lock' || event.key == 'control') return;


    if (event.modifiers.shift || event.modifiers.capsLock) {
        text.content = text.content + event.key.toUpperCase();
    }else if (Key.isDown('space')){
        event.preventDefault();
        text.content = text.content + " ";
    }else if (Key.isDown('backspace')){
        var subStr = text.content.substring(0, text.content.length - 1)
        text.content = subStr;
    }    
    else{
        text.content = text.content + event.key;
    } 
}

这就是我最终的结果。