KeyboardJS 0.4.1 发布

阅读数:567 2013 年 1 月 18 日

话题:JavaScript语言 & 开发

KeyboardJS是一款为简化 JavaScript 中的键盘处理而编写的库,上个月发布了 0.4.1 版本,该版本修复了很多 bug,还包含了一些新特性。KeyboardJS库致力于帮助前端开发人员处理键盘动作,比如支持网站或游戏中的快捷键。如果不使用库,要检查 J 和 K 是否同时按下,可能需要使用类似如下的代码:

var jPressed = false,
    kPressed = false;

document.addEventListener('keydown', function (e) {
    if (e.keyCode === 74) {
        jPressed = true;
    } else if (e.keyCode === 75) {
        kPressed = true;
    }

    if (jPressed && kPressed) {
        // 两个键都被按下;向控制台中打印日志 
        console.log('Both J and K are pressed');
    }
});

document.addEventListener('keyup', function (e) {
    if (e.keyCode === 74) {
        jPressed = false;
    } else if (e.keyCode === 75) {
        kPressed = false;
    }
});

而使用 KeyboardJS 时,只需如下可读性更好的代码:

KeyboardJS.on('j + k', function () {
    console.log('Both J and K are pressed');
});

该库还允许开发者指定按键按下的顺序(使用 > 运算符),而且除了上面演示的“与(and)”操作,“或(or)”操作可以使用空格或逗号。

KeyboardJS 没有发布 0.4.0 版本,上个月发布的 0.4.1 版是完全重写的。除了修复很多 bug 之外,还有一些 API 方面的变更。这里举两个例子,一个是添加了 KeyboardJS.getActiveKeys() 函数,能够按名字返回当前按下按键的数组(GitHub 上的 KeyboardJS 网站就是利用该函数输出按键名的),另一个是很多用于处理组合按键的组合函数移到了 KeyboardJS.combo 对象中。

要把 KeyboardJS 添加到自己的应用中,可以从GitHub(鼠标滑动到“Get it Here”部分)下载代码,并在使用 KeyboardJS 之前将如下 HTML 代码添加到你的页面中:

<script src="keyboard.js"></script>

如果仍在使用 XHTML,需要将 type="text/javascript"添加到 script 标签中。

也可以通过RequireJS将其当做 AMD 模块下载。

区域设置指的是不同的键盘布局,比如在美式键盘布局中,shift + 6 是(^)符号,而在德式键盘布局中则是(&)。每种要支持的区域设置都必须告知该库。KeyboardJS 目前只支持美式键盘布局,但是添加自己的区域设置非常容易——请确保在添加自己的区域设置时向该库发送 pull 请求。

参考英文原文KeyboardJS 0.4.1 released