【问题标题】:How to check keyboard state while painting on HTML5 canvas?在 HTML5 画布上绘画时如何检查键盘状态?
【发布时间】:2010-03-18 10:43:30
【问题描述】:

我只是在玩弄 HTML5 画布和绘画。我碰巧找到了 Opera 的 this article,它很好地描述了如何设置一个简单的应用程序。

我想扩展它,以便用户可以设置一个消失点(1 点透视),可以用来约束绘画。为此,我需要想办法定义一些修饰键来限制结果(即约束映射为 (key=>axis) a=>x, s=>y, d=>z)。

在处理“mousedown”事件时,有什么方法可以检查用户按下了哪个键?

【问题讨论】:

    标签: javascript html canvas dom-events


    【解决方案1】:

    AFAIK 只有在文档有焦点时才会起作用。

    您应该为参与按键事件的主体添加一个侦听器,当它触发时,您将其存储在一个变量中,然后当用户触发按键释放时将其清空,示例应该是这样的:

    document.body.onkeydown=function(evt){evt=evt?evt:window.event;console.log(evt)}; document.body.onkeyup=function(evt){evt=evt?evt:window.event;console.log(evt)};

    那么您只需识别 evt.keyCode 并对其进行操作。

    你也可以试试像shortcut.js 这样的第三方库。

    【讨论】:

    • 谢谢!你给我指出了正确的方向。我最终使用了“window.onkeydown”和“window.onkeyup”处理程序。我不确定这是否是最佳解决方案,但在这种情况下似乎可以正常工作。 shortcut.js 看起来也有些有趣。我一开始就试了一下。问题是它不支持发布事件。否则它看起来像一个很酷的库。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-02-26
    • 2018-12-13
    • 2019-04-12
    • 2012-02-26
    • 2012-05-12
    • 1970-01-01
    • 2015-06-26
    相关资源
    最近更新 更多