javascript - 如何使用客户端 javascript 模拟人类行为来玩 Flash 游戏?

标签 javascript selenium flash

我的意图:

假设您有两个玩家 A 和 B,他们在两台不同的计算机上玩嵌入在其页面中的同一个 Flash 游戏。

如果玩家 A 按“W”跳跃或点击“PLAY”跳跃,玩家 B 应该在浏览器中看到相同的 Action 。

我已经尝试过:

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)

这行不通。我相信我需要某种客户端 selenium 的东西,以便我可以在 html 元素上模拟真实的按键(在我的例子中,它是一个 Flash 游戏)。不过我没找到。

有办法做我想做的事吗?

最佳答案

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

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

关于javascript - 如何使用客户端 javascript 模拟人类行为来玩 Flash 游戏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60789846/

相关文章:

javascript - JavaScript 中的 PHP foreach

javascript - 调试从 jQuery 调用的 PHP 脚本

firefox - 在 selenium 自动化运行期间调整网页大小以捕获整个页面的屏幕截图

flash - 弹性 : Resetting prompt of a comboBox

flash - 最佳 Flash 上传小部件

javascript - 谷歌美化 : Line numbers won't show

javascript - 如何将 HTML5 数据属性编写为 JavaScript 数组元素

java - 无法使用 selenium 脚本在 mozilla firefox 中写入 URL。即使eclipse也没有显示任何错误

Selenium::WebDriver::Error Chrome 在 M1 芯片上崩溃

browser - Flash Player API是否具有 “get the screen resolution”功能?