随着时间的推移对 (UI) 事件的模式作出反应

Posted

技术标签:

【中文标题】随着时间的推移对 (UI) 事件的模式作出反应【英文标题】:Reacting to patterns of (UI) events over time 【发布时间】:2015-07-24 15:57:21 【问题描述】:

随着时间的推移寻找事件模式并触发新事件的表达方式是什么?

例如,用户界面事件通常是简单事件的模式,例如 mousedown/up、mousemove 或 keyup/keydown。

拖放交互需要监听 mousedown 事件,然后是一些 mousemove 事件,然后是 mouseup,并查看可拖动/可放置 UI 对象是否是不同事件的目标。此外,您可能希望有一个时间和距离阈值,以避免在用户可能尝试单击时触发拖动,并且您可能希望查找修饰键,或使用 Escape 来取消交互。

处理这些事情,因为单个事件侦听器的数量很快变得复杂且容易出错,调试起来很棘手,并且经常导致不同事件之间发生冲突。

简洁明了地表达这些模式的常用抽象是什么?

【问题讨论】:

【参考方案1】:

Composite 模式作为一种结构化代码的方式跳入脑海,因为您拥有组合形成复杂事件的原始事件,而所有事件都符合基本接口。

对于行为模式,我们直观地认为事件是可观察的;但在复合事件的情况下,我们也可以将其视为Observer,其中一个复杂事件观察一个或多个原始事件。

【讨论】:

以上是关于随着时间的推移对 (UI) 事件的模式作出反应的主要内容,如果未能解决你的问题,请参考以下文章

java自定义事件,线程a如何每一秒钟触发一个事件,然后另一个线程b监听之,并作出反应?

为啥我的应用程序随着时间的推移变得反应迟钝?

Grafana/Timestream:如何随着时间的推移可视化某些事件的数量

随着时间的推移,使用熊猫计算滚动窗口中唯一 id 的特定条件事件的数量

随着时间的推移跟踪活动对象

反应材质 UI 选择框 onBlur 事件不起作用