Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/425.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在HTML5画布上绘制时检查键盘状态?_Javascript_Html_Canvas_Dom Events - Fatal编程技术网

Javascript 如何在HTML5画布上绘制时检查键盘状态?

Javascript 如何在HTML5画布上绘制时检查键盘状态?,javascript,html,canvas,dom-events,Javascript,Html,Canvas,Dom Events,我只是在玩弄HTML5画布和绘画。我碰巧发现Opera很好地描述了如何设置一个简单的应用程序 我想扩展它,以便用户可以设置一个消失点(1点透视图),用于约束绘画。为了实现这一点,我需要找到一种方法来定义一些修改器键来限制结果(即约束映射为(键=>axis)a=>x,s=>y,d=>z) 是否有某种方法可以检查用户在处理“mousedown”事件时按下了哪个键?AFAIK它只有在文档有焦点时才会工作 您应该为按键事件的主体添加一个侦听器,当它触发时,您将其存储在一个变量中,当用户触发按键释放后清空

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

我想扩展它,以便用户可以设置一个消失点(1点透视图),用于约束绘画。为了实现这一点,我需要找到一种方法来定义一些修改器键来限制结果(即约束映射为(键=>axis)a=>x,s=>y,d=>z)


是否有某种方法可以检查用户在处理“mousedown”事件时按下了哪个键?

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)}; 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并使用它


您也可以尝试使用类似的第三方库。

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)}; 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并使用它


您也可以尝试类似的第三方库。

谢谢!你给我指明了正确的方向。我最终使用了“window.onkeydown”和“window.onkeydup”处理程序。我不确定这是否是最佳解决方案,但在这种情况下,这似乎效果不错。js看起来也有点有趣。最初我试了一下。问题是它不支持发布事件。否则它看起来就像一个很酷的图书馆。谢谢!你给我指明了正确的方向。我最终使用了“window.onkeydown”和“window.onkeydup”处理程序。我不确定这是否是最佳解决方案,但在这种情况下,这似乎效果不错。js看起来也有点有趣。最初我试了一下。问题是它不支持发布事件。否则它看起来就像一个很酷的图书馆。