11521 sujets
JavaScript, DOM et API Web HTML5
salut,
pas à ma connaissance. Tu dois d'abord stocker les touches pressées et les gérer, puis vérifier si une touche donnée figure dans les valeurs stockées.
Cela dit, ça ne reste pas fiable car difficile à gérer.
Tu peux par contre aisément savoir si les touches Ctrl ou Alt sont pressées avec l'objet Event.
pas à ma connaissance. Tu dois d'abord stocker les touches pressées et les gérer, puis vérifier si une touche donnée figure dans les valeurs stockées.
Cela dit, ça ne reste pas fiable car difficile à gérer.
Tu peux par contre aisément savoir si les touches Ctrl ou Alt sont pressées avec l'objet Event.
Zelalsan a écrit :
salut,
pas à ma connaissance. Tu dois d'abord stocker les touches pressées et les gérer, puis vérifier si une touche donnée figure dans les valeurs stockées.
Cela dit, ça ne reste pas fiable car difficile à gérer.
Tu peux par contre aisément savoir si les touches Ctrl ou Alt sont pressées avec l'objet Event.
var keyboard = {};
window.addEventListener('keydown', function(e){
keyboard[e.keyCode] = e.type == 'keydown';
console.log(keyboard);
});
@Johnsonn : Je te laisse faire le reste :
1. Tu vérifies qu'il y ait 2 éléments,
2. tu vérifies lesquels,
3. une fois ton traitement terminé, tu vides le "array".
Attention cette manière est dépréciée. Cependant, si tu te débrouilles bien, tu choisis des touches dont la correspondances du keyCode est optimale (bas de page)
Modifié par niuxe (14 Nov 2017 - 20:51)
@niuxe Le code que tu proposes ne gère pas les touches simultanées. Il ne fait qu'enregistrer les touches appuyées. Il suffit de presser "a", puis de presser "z" pour que la condition devienne vraie.
Crois-moi que c'est beaucoup moins simple que ça en l'air. Tu ne feras jamais une code fiable à 100%.
Crois-moi que c'est beaucoup moins simple que ça en l'air. Tu ne feras jamais une code fiable à 100%.
Zelalsan a écrit :
@niuxe Le code que tu proposes ne gère pas les touches simultanées. Il ne fait qu'enregistrer les touches appuyées. Il suffit de presser "a", puis de presser "z" pour que la condition devienne vraie.
Crois-moi que c'est beaucoup moins simple que ça en l'air. Tu ne feras jamais une code fiable à 100%.
Ça sent la discussion stérile....
En effet, tu as raison.
niuxe a écrit :
1. Tu vérifies qu'il y ait 2 éléments,
2. tu vérifies lesquels,
3. une fois ton traitement terminé, tu vides le "array".
var keyboard = {};
var len = function(obj){
count = 0
for(k in obj){
if(obj.hasOwnProperty(k)) count += 1
}
return count;
}
window.addEventListener('keydown', function(e){
keyboard[e.keyCode] = e.type == 'keydown';
console.log(keyboard);
if(len(keyboard) == 2){
console.log('lol');
keyboard = {};
}
});
Modifié par niuxe (15 Nov 2017 - 12:32)
Même si c'est parfaitement faisable, c'est probablement une très mauvaise idée.
En-dehors des touches modificatrices classiques, ce n'est pas commun de demander l'appui de plusieurs touches simultanément.
Exception faite des jeux mais c'est spécifique.
L'objet event propose shiftKey|ctrlKey|altKey|metaKey pour les touches modificatrices habituelles, donc pas besoin d'implémenter son propre système potentiellement buggé.
En-dehors des touches modificatrices classiques, ce n'est pas commun de demander l'appui de plusieurs touches simultanément.
Exception faite des jeux mais c'est spécifique.
L'objet event propose shiftKey|ctrlKey|altKey|metaKey pour les touches modificatrices habituelles, donc pas besoin d'implémenter son propre système potentiellement buggé.