我的意图:
假设您有两个玩家A和B,他们在页面中嵌入了相同的Flash游戏,但是在两台不同的计算机上。
如果玩家A按'W'跳或按“ PLAY”跳,则玩家B在浏览器中应该看到相同的动作。
我已经尝试过的:
const game = document.getElementById('game');
var e = null;
game.addEventListener('keydown', (event) => {
if (event.keyCode == 37) {
console.log('Left was pressed');
} else if (event.keyCode == 39) {
console.log('Right was pressed');
};
e = event;
});
我已将此事件发送给玩家B(使用套接字)
e = // get it from player A
game.dispatchEvent(e)
这不起作用。我相信我需要某种客户端硒元素,以便可以在html元素上模拟真实的按键(在我的情况下,这是一个Flash游戏)。但是,我找不到一个。
有没有办法做我想做的事?
基本上,您可以创建一个新的Event('keydown'),请参阅this。在SO上,您已经可以看到有关以编程方式引发键盘事件的问题,请参见this。但是,您打算导出一个事件,将其发送并导入。据我所知,您将需要实现导出,还需要实现导入。但是,如果您设法正确导出所需的值,那么创建事件应该不会很困难。
但是,我建议您将事件处理与可能由事件触发的功能分开。这比当前重构代码的方法更为明智,因此可以执行功能而无需黑客创建事件,然后可以调用功能。为此,您将需要在Flash和Javascript之间进行通信,请参阅here,还可以考虑使用WebSockets获得更好的网络协议,以帮助您的游戏项目。