在 Flambe 中处理键盘和鼠标事件的最佳实践是什么?
What are the best practices for working with keyboard and mouse events in Flambe?
我已阅读 relevant post in the Flambe guide but couldn't see any use of the clone() function. The APIs of the various event classes (like the PointerEvent class) 包含此说明:
NOTE: For performance reasons, PointerEvent instances are reused by
Flambe. Use clone() to retain a reference to an event.
我有 3 个问题:
- 即使我的代码仍在处理 PointerEvent 对象,它是否有可能发生变化?
- 什么时候应该使用 clone() 函数?
- 在 Flambe 中处理事件时,还有其他我应该了解的最佳实践吗?
- 同框内应该一样,但我不确定这是否确定。我使用规则,如果你将它传递给不同的实例或者想稍后重用它,克隆它。
- 当您想在下一帧中存储事件时。我个人主要将 viewX/viewY 值复制到自定义点中(例如,如果您想自己检测滑动),那么就不需要克隆整个事件,但这是我的偏好。
- Always dispose the events。他们return一个
SignalConnection
。将其设为私有成员并将其放置在 dispose
函数中,或者如果您使用它,则将其注册到 Disposer
中。这避免了内存泄漏和不需要的行为。
我已阅读 relevant post in the Flambe guide but couldn't see any use of the clone() function. The APIs of the various event classes (like the PointerEvent class) 包含此说明:
NOTE: For performance reasons, PointerEvent instances are reused by Flambe. Use clone() to retain a reference to an event.
我有 3 个问题:
- 即使我的代码仍在处理 PointerEvent 对象,它是否有可能发生变化?
- 什么时候应该使用 clone() 函数?
- 在 Flambe 中处理事件时,还有其他我应该了解的最佳实践吗?
- 同框内应该一样,但我不确定这是否确定。我使用规则,如果你将它传递给不同的实例或者想稍后重用它,克隆它。
- 当您想在下一帧中存储事件时。我个人主要将 viewX/viewY 值复制到自定义点中(例如,如果您想自己检测滑动),那么就不需要克隆整个事件,但这是我的偏好。
- Always dispose the events。他们return一个
SignalConnection
。将其设为私有成员并将其放置在dispose
函数中,或者如果您使用它,则将其注册到Disposer
中。这避免了内存泄漏和不需要的行为。