用户交互与事件
本页对应英文版 User Interaction & Events,介绍 relation-graph 如何把节点、连线、画布、滚轮、键盘和触控等用户操作组织成统一事件系统。
事件系统总览
- 所有交互都会经过标准化事件管线。
- 默认行为、自定义处理器和平台桥接共同决定最终效果。
事件流架构
- 用户操作
- 命中检测与状态更新
- 默认处理器执行
- 自定义监听器执行
- 平台侧事件透出
核心事件对象
RGEventNamesRGListenersRGUserEvent
它们共同定义事件名称、处理签名和运行时事件上下文。
事件注册方式
声明式监听
- 适合大多数业务页面。
编程式注册
- 适合更复杂的实例级控制。
框架事件桥
- 适合把核心实例事件进一步映射到平台组件体系。
常见交互类型
- 节点点击与拖拽
- 画布拖拽与平移
- 连线点击与编辑
- 键盘快捷行为
- 触摸交互
事件取消与返回值
- 某些处理器可通过返回值取消默认行为。
- 某些场景还可以覆盖默认坐标或交互结果。
拖拽辅助
RGDragUtils等工具用于统一拖拽节流、状态转换和位置计算。
性能注意事项
- 高频交互通常需要节流、去抖或
requestAnimationFrame协调。 - 在大图和编辑场景下尤其重要。