Javascript Gamepad API“;gamepadconnected“;不起作用
我使用的Gamepad API“gamepadconnected”函数工作不正常。然而,“gamepaddisconnected”功能由于某些原因而起作用。在连接我的蓝牙控制器时,控制台中不会显示任何内容,但是,它会显示断开连接时显示的信息 我这里的内容非常基本和标准:Javascript Gamepad API“;gamepadconnected“;不起作用,javascript,gamepad,gamepad-api,Javascript,Gamepad,Gamepad Api,我使用的Gamepad API“gamepadconnected”函数工作不正常。然而,“gamepaddisconnected”功能由于某些原因而起作用。在连接我的蓝牙控制器时,控制台中不会显示任何内容,但是,它会显示断开连接时显示的信息 我这里的内容非常基本和标准: window.addEventListener("gamepadconnected", function(e) { console.log("Controller connected"); }); window.addEv
window.addEventListener("gamepadconnected", function(e) {
console.log("Controller connected");
});
window.addEventListener("gamepaddisconnected", function(e) {
console.log("Controller disconnected");
});
我错过了什么?哪里出了问题?我确保第一个重点页面就是上面的脚本。感谢您的帮助。MDN声明“如果加载页面时已连接gamepad,则当用户按下按钮或移动轴时,gamepadconnected事件将发送到聚焦页面。”。因此,当您连接pad时,您的页面不会始终收到gamepadconnected
事件
因此,最好让用户按下按钮启动应用程序。当有多个gamepad连接到计算机,并且您的应用程序必须知道要使用哪个gamepad时,这也很有用。MDN声明“如果页面加载时gamepad已连接,则当用户按下按钮或移动轴时,gamepadconnected事件将调度到聚焦页面。”。因此,当您连接pad时,您的页面不会始终收到gamepadconnected
事件
因此,最好让用户按下按钮启动应用程序。当有多个GamePad连接到计算机,并且您的应用程序必须知道要使用哪个GamePad时,这一点也很有用。Chrome因其GamePad API的单独实现而臭名昭著(在使用它之后,我当然会这么认为!)。一个问题是,据我所知,它还不支持“gamepadconnected”事件,您必须轮询GamePad对象的gamepadconnected属性,以便对连接和断开连接进行合理的操作。我知道这是一种痛苦,但这可能反映了一个事实,即W3C的API标准仍在不断变化。您还会发现还有其他问题,例如Windows上的浏览器X与Linux上的浏览器X的行为不同
我不知道是否有人尝试过将这些设备插入Android或iOS设备(除非您计划将飞行sim卡移植到其中,否则对触摸屏设备的要求可能是多余的!),但我怀疑如果进行这些实验,将会出现更多的兼容性问题。如果你有能力潜入一个带有USB端口的Android智能手机,并在智能手机浏览器中修改JavaScript,你可能会发现更多有趣的问题浮出水面
至于传统的游戏手柄(比如我10岁的微软Sidewinder Pro USB),它们也有自己的乐趣。我目前正在努力使其他合理的代码与奇怪的东西一起工作,例如GamePad对象中的axis属性被分配给了hat开关,等等,它在这个设备上是一个数字数据源,而不是模拟数据源。当你坚持使用GamePad API,直到W3C最终确定该标准时,请注意兼容性问题的浪潮正在向你袭来。Chrome因其GamePad API的单独实现而臭名昭著(在使用它之后,我当然会这么认为!)。一个问题是,据我所知,它还不支持“gamepadconnected”事件,您必须轮询GamePad对象的gamepadconnected属性,以便对连接和断开连接进行合理的操作。我知道这是一种痛苦,但这可能反映了一个事实,即W3C的API标准仍在不断变化。您还会发现还有其他问题,例如Windows上的浏览器X与Linux上的浏览器X的行为不同
我不知道是否有人尝试过将这些设备插入Android或iOS设备(除非您计划将飞行sim卡移植到其中,否则对触摸屏设备的要求可能是多余的!),但我怀疑如果进行这些实验,将会出现更多的兼容性问题。如果你有能力潜入一个带有USB端口的Android智能手机,并在智能手机浏览器中修改JavaScript,你可能会发现更多有趣的问题浮出水面
至于传统的游戏手柄(比如我10岁的微软Sidewinder Pro USB),它们也有自己的乐趣。我目前正在努力使其他合理的代码与奇怪的东西一起工作,例如GamePad对象中的axis属性被分配给了hat开关,等等,它在这个设备上是一个数字数据源,而不是模拟数据源。当您坚持使用GamePad API,直到W3C最终确定标准时,请注意兼容性问题的浪潮正在向您袭来。您使用的是哪种浏览器?你试过
webkitgamepadconnected
或mozgamepadconnected
吗?我用的是Chrome,我没有试过。我想我应该尝试使用webkitgamepadconnected?不幸的是,这似乎不起作用。好的,我发现了发生的事情。仅当您重新启动选项卡时,连接的事件才会激发。由于某些原因,刷新页面将不起作用。我相信这是意料之中的。MDN声明“如果加载页面时已连接gamepad,则当用户按下按钮或移动轴时,gamepadconnected事件将被发送到聚焦页面。”。您使用的是哪种浏览器?你试过webkitgamepadconnected
或mozgamepadconnected
吗?我用的是Chrome,我没有试过。我想我应该尝试使用webkitgamepadconnected?不幸的是,这似乎不起作用。好的,我发现了发生的事情。仅当您重新启动选项卡时,连接的事件才会激发。由于某些原因,刷新页面将不起作用。我相信这是意料之中的。MDN声明“如果加载页面时已连接gamepad,则gamepadconnected事件为dispatch