我如何使用客户端JavaScript来模拟人类行为以玩Flash游戏?

问题描述 投票:0回答:1

我的意图:

假设您有两个玩家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游戏)。但是,我找不到一个。

有没有办法做我想做的事?

javascript selenium flash
1个回答
0
投票

基本上,您可以创建一个新的Event('keydown'),请参阅this。在SO上,您已经可以看到有关以编程方式引发键盘事件的问题,请参见this。但是,您打算导出一个事件,将其发送并导入。据我所知,您将需要实现导出,还需要实现导入。但是,如果您设法正确导出所需的值,那么创建事件应该不会很困难。

但是,我建议您将事件处理与可能由事件触发的功能分开。这比当前重构代码的方法更为明智,因此可以执行功能而无需黑客创建事件,然后可以调用功能。为此,您将需要在Flash和Javascript之间进行通信,请参阅here,还可以考虑使用WebSockets获得更好的网络协议,以帮助您的游戏项目。

© www.soinside.com 2019 - 2024. All rights reserved.