首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在javascript中禁用UI事件(但让它们在调用dispatchEvent时触发)?

如何在javascript中禁用UI事件(但让它们在调用dispatchEvent时触发)?
EN

Stack Overflow用户
提问于 2015-07-14 07:10:16
回答 2查看 235关注 0票数 0

我正在开发一个javascript游戏。它有一个相当复杂的UI,需要大量的用户交互才能进行移动。我现在正在开发这款游戏的人工智能,以便它可以在电脑上玩。我在考虑在计算机玩游戏时使用dispatchEvent方法以编程方式引发事件来驱动UI,但我遇到了一个问题,如果用户也开始与UI交互怎么办-这将完全搞乱游戏。那么,开发javascript游戏的人是否遵循某种模式来解决这个问题呢?

假设我有一组事件处理程序- onmousedown, onmousemove, onmouseup等。人类玩家和计算机都使用这些处理程序进行移动。但是,人工玩家依赖于与应用程序进行手动交互,而计算机则通过dispatchEvent方法调用这些处理程序。当轮到计算机时,我需要一种方法来告诉js:看,我不希望你在手动UI交互时调用这些处理程序。仅在响应dispatchEvent时调用它们

EN

回答 2

Stack Overflow用户

发布于 2015-07-14 07:13:20

您可以尝试将一些元数据附加到标识由计算机引发的事件的dispatchEvent。

票数 2
EN

Stack Overflow用户

发布于 2015-07-14 07:24:14

您可以尝试查看isTrusted。根据MDN的说法,

指示事件是由浏览器(例如在用户单击之后)还是由脚本(使用事件创建方法,如event.initEvent)发起的

注某些版本的IE可能会将脚本创建的事件视为受信任事件。

但根据DOM4的说法,这应该是可行的:

  • Fired events是可信的:

触发一个名为e的事件意味着一个新的事件...和..。其isTrusted属性初始化为true,将对给定对象执行dispatched操作。

  • dispatchEvent会产生不受信任的事件:

将事件的isTrusted属性初始化为false。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31395004

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档