首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在模态操作符事件计时器中,为什么更改更新秒数没有任何区别

在模态操作符事件计时器中,为什么更改更新秒数没有任何区别
EN

Stack Overflow用户
提问于 2019-12-15 12:15:28
回答 1查看 130关注 0票数 1

在模态运算符中,这一行:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
self._timer = wm.event_timer_add(0.1, window=context.window)

From docs - time_step (float in 0,inf) -时间步长,计时器事件之间的间隔(秒)

但是,将0.1更改为1或500没有视觉效果。

这是一个bug,还是我对用法的理解错误?

EN

回答 1

Stack Overflow用户

发布于 2021-04-22 10:36:05

你能从中得出的结论取决于你如何衡量结果。

由于模态操作符提供了一个事件对象,该对象负责管理所有类型的事件,而不仅仅是计时器,因此该对象还将对所有用户输入做出反应,并在检测到新事件时调用模态函数。

错误的是,假设因为为操作员设置了一个计时器,所以只有在产生计时器事件时才会调用模态函数。

将在所有可能的事件上调用模态函数。即使你只移动鼠标,也会有一些事件被传递给模态函数。

'time_step‘参数按预期工作,但您必须从模态函数中所有其他可能的事件中过滤计时器事件,以确保您只引用计时器事件。这样,您就可以准确地了解调用函数所需的时间,而不会出现误报。

要过滤计时器事件,只需在您的模态函数中使用以下代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
if event.type == "TIMER":

    # your code() to execute on timer events

作为最佳实践建议,尝试将模态函数的使用保留给所有事件决策,包括何时取消或成功完成正在运行的运算符。

千万不要在模态函数中包含与事件无关的代码,否则当你遇到一些复杂的问题时,你会发现它像疯了一样增长。

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

https://stackoverflow.com/questions/59343816

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文