如何在 Emscripten + SDL 中禁用窗口事件捕获?
Posted
技术标签:
【中文标题】如何在 Emscripten + SDL 中禁用窗口事件捕获?【英文标题】:How to disable window event capturing in Emscripten + SDL? 【发布时间】:2017-07-30 12:19:27 【问题描述】:对于我的用例,我不需要通过键盘或鼠标在用户和 emscripten 代码之间进行任何交互,我只需要访问画布。
我注意到,每当我调用使用 emscript 编译的代码时,Chrome 都会在控制台上显示许多警告,例如
Added non-passive event listener to a scroll-blocking 'touchstart' event. Consider marking event handler as 'passive' to make the page more responsive.
由于我不需要任何用户交互,我想禁用这些事件以提高性能并避免分配不需要的对象。
我已经将doNotCaptureKeyboard
设置为 true,有没有办法指示 emscripten 完全忽略所有输入的 DOM 事件?
【问题讨论】:
【参考方案1】:这没有经过很好的测试,但它似乎工作:
<script>
SDL.receiveEvent = function(event)
</script>
您可以从 SDL 覆盖主事件函数。只需确保 SDL 已加载或将代码放在结束 body 标记之前。
请记住,您禁用了整个事件处理,这可能会导致问题。如果遇到问题,可以尝试重命名函数并传递一些您需要的事件。
【讨论】:
以上是关于如何在 Emscripten + SDL 中禁用窗口事件捕获?的主要内容,如果未能解决你的问题,请参考以下文章
在 Edge 和 Safari (emscripten) 中使用 SDL_mixer 播放 .ogg 文件
将 SDL2 RenderDraw 函数与 Emscripten 一起使用