Я пытаюсь написать веб-страницу, где я могу обнаружить нажатия кнопок на контроллере Xbox и показать пользователю логическое значение на основе нажатой кнопки. Прямо сейчас я могу обнаружить подключенный контроллер и показать его в виде строки. Документация говорит, что использовать этот код для обнаружения нажатия кнопки здесь:
var isPressed = navigator.getGamepads()[0].pressed;
, но Chrome показывает эту ошибку при использовании:
Uncaught TypeError: Cannot read property 'pressed' of null
Ошибка связана с .pressed
часть вышеуказанной строки кода. Вся документация находится на сайте Mozilla , поэтому я предполагаю, что они использовали FireFox при написании руководств.
В идеале я хотел бы получить следующее:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<h id="button"></h>
<h id="gpInfo"></h>
<script>
var i = 1;
window.addEventListener("gamepadconnected", function(e) {
var gp = navigator.getGamepads()[e.gamepad.index];
document.getElementById("gpInfo").innerHTML = ("A " + gp.id + " was successfully detected! There are a total of " + gp.buttons.length + " buttons.")
//alert("A " + gp.id + " was successfully detected!")
});
var isPressed = navigator.getGamepads()[0].pressed;
document.getElementById("button").innerHTML = isPressed;
</script>
<!-- <script type="text/javascript" src="gamepadtest.js"></script> -->
</head>
</html>
Код выведет на экран логическое значение, чтобы пользователи могли видеть, когда они нажимают кнопку. Я впервые работаю с JavaScript и HTML. Если бы вы могли сделать свой ответ дружелюбным к новичкам, это было бы здорово! Документация для Gamepad API и для GamepadButton