1

嗨,我的 Cesium 项目中有以下代码,想知道如何使用字符以外的其他键。这是我现在所拥有的:

function getFlagForKeyCode(keyCode) {
switch (keyCode) {
case 'W'.charCodeAt(0):
    return 'moveForward';
case 'S'.charCodeAt(0):
    return 'moveBackward';
case 'Q'.charCodeAt(0):
    return 'moveUp';
case 'E'.charCodeAt(0):
    return 'moveDown';
case 'D'.charCodeAt(0):
    return 'moveRight';
case 'A'.charCodeAt(0):
    return 'moveLeft';
default:
    return undefined;
}

}

我希望能够使用 - 和 + 键。我怎样才能做到这一点?

4

2 回答 2

2

如果您keyCode来自 keyup/keydown 事件,则需要执行以下操作:

document.addEventListener("keydown", function(e){
    if ((e.shiftKey && e.keyCode == 187) || e.keyCode == 107) {
        e.keyCode = 43; // 43 - char code for "+"
    }

    if (e.keyCode == 189 || e.keyCode == 109) {
        e.keyCode = 45; // 45 - char code for "-"
    }

    getFlagForKeyCode(e.keyCode);

}, false);

并扩展您的getFlagForKeyCode功能

function getFlagForKeyCode (keyCode) {
    switch (keyCode) {
    case 'W'.charCodeAt(0):
        return 'moveForward';
    case 'S'.charCodeAt(0):
        return 'moveBackward';
    case 'Q'.charCodeAt(0):
        return 'moveUp';
    case 'E'.charCodeAt(0):
        return 'moveDown';
    case 'D'.charCodeAt(0):
        return 'moveRight';
    case 'A'.charCodeAt(0):
        return 'moveLeft';
    case '+'.charCodeAt(0):
        // return what you need
    case '-'.charCodeAt(0):
        // return what you need
    default:
        return undefined;
    }
}
于 2013-09-26T13:36:30.707 回答
0

向上、向下、向左和向右使用箭头键,代码为 37-40,+ 和 - 键为 187 和 189:

function getFlagForKeyCode(keyCode) {
switch (keyCode) {
case 187:
    return 'moveForward';
case 189:
    return 'moveBackward';
case 38:
    return 'moveUp';
case 40:
    return 'moveDown';
case 39:
    return 'moveRight';
case 37:
    return 'moveLeft';
default:
    return undefined;
}

}

于 2013-09-26T15:23:08.303 回答