如何检测SHIFT +右箭头+角中的其他一些关键 [英] How to detect shift + right arrow + some other key in angular
本文介绍了如何检测SHIFT +右箭头+角中的其他一些关键的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我要检测角位移+右箭头+ P的一个问题。结果
我使用的角度1.2.3
我没有问题,只检测右箭头+ P,但换挡时进入游戏的东西刹车
问题是热的检测情况时,3键是pressed:SHIFT +右箭头键+ P
下面是一个工作的例子 plunker
VAR应用= angular.module('keyboardDemo',[]);app.controller('MainCtrl',函数($范围,$超时){
/ **
* 39(右箭头)
* 80(p)的
* /
VAR地图= {39:假的,80:假}; $ scope.onKeyUp =函数(事件){
如果(图[39]和放大器;&放大器;图[80]){
$ scope.data.message1 =P + RIGHT pressed!;
$超时(函数(){
$ scope.data.message1 ='';
},1000);
} 如果(event.shiftKey&安培;&放大器;图[39]和放大器;&放大器;图[80]){
$ scope.data.message2 =SHIFT + P + RIGHT pressed!;
$超时(函数(){
$ scope.data.message2 ='';
},1000);
} VAR键code = getKeyboardEvent code(事件);
如果(在地图键code){
clearKey code(键code);
}
};
$ scope.onKeyDown =函数(事件){
VAR键code = getKeyboardEvent code(事件);
如果(在地图键code){
图[关键code] =真;
}
}
VAR getKeyboardEvent code =功能(事件){
返回parseInt函数((window.event event.key code:event.which));
}; 功能clearKey code(code){
图[code] = FALSE;
} $ scope.data = {
MESSAGE1':'',
消息2':''
};
});
解决方案
正如评论说。您code实际效果很好。在MacOS使用Chrome,当我preSSSHIFT + P +右箭头并释放键,我看到两个消息。
I have a problem to detect shift + right arrow + p in angular.
I am using angular 1.2.3
I have no problem to detect only right arrow + p but when the shift comes into game something brakes
The question is hot to detect situation when 3 keys are pressed: SHIFT + RIGHT ARROW + P
Here is a working example on plunker
var app = angular.module('keyboardDemo', []);
app.controller('MainCtrl', function($scope, $timeout) {
/**
* 39 (right arrow)
* 80 (p)
*/
var map = {39: false, 80: false};
$scope.onKeyUp = function(event){
if (map[39] && map[80]) {
$scope.data.message1 = "P + RIGHT pressed!";
$timeout(function(){
$scope.data.message1 = '';
}, 1000);
}
if (event.shiftKey && map[39] && map[80]) {
$scope.data.message2 = "SHIFT + P + RIGHT pressed!";
$timeout(function(){
$scope.data.message2 = '';
}, 1000);
}
var keyCode = getKeyboardEventCode(event);
if (keyCode in map) {
clearKeyCode(keyCode);
}
};
$scope.onKeyDown = function(event){
var keyCode = getKeyboardEventCode(event);
if (keyCode in map) {
map[keyCode] = true;
}
}
var getKeyboardEventCode = function (event) {
return parseInt((window.event ? event.keyCode : event.which));
};
function clearKeyCode(code){
map[code] = false;
}
$scope.data = {
'message1': '',
'message2': ''
};
});
解决方案
As said in the comment. Your code works actually well . Using chrome on macOS, when i press "SHIFT + P + RIGHT ARROW" and release the keys i see both messages.
这篇关于如何检测SHIFT +右箭头+角中的其他一些关键的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文