Data Visualization Sprites重复点击无响应问题求助
Data Visualization Sprites重复点击同一精灵无响应问题排查与解决
问题场景
- 通过Data Visualization Sprites展示项目问题,首次点击精灵可正常触发
DataVizCore.MOUSE_CLICK事件,打开侧边组件展示问题详情 - 点击「关闭问题详情」按钮时,执行
dataVisuzlizationExtension.clearHighlightedViewables()并清除选中状态后,再次点击同一精灵,监听事件完全不触发 - 先点击其他对象后再返回点击该精灵,事件则恢复正常
- 已尝试
viewer.select(dbId)切换选中对象、viewer.clearSelection()清除全局选中状态,均无法解决问题
解决思路与方案
问题核心是DataViz扩展内部的精灵选中状态未完全重置,导致重复点击时扩展判定目标仍处于选中状态,跳过了事件触发逻辑。可尝试以下操作:
重置DataViz扩展的精灵选中状态
在关闭详情的逻辑中,除了原有清除高亮的操作,主动取消DataViz扩展内部记录的选中精灵:// 获取DataViz扩展实例 const dataVizExt = viewer.getExtension('Autodesk.DataVisualization'); // 取消当前选中的精灵(如果存在) if (dataVizExt.selectedSprite) { dataVizExt.deselectSprite(dataVizExt.selectedSprite); } // 执行原有清除逻辑 dataVizExt.clearHighlightedViewables(); viewer.clearSelection();强制刷新视图交互状态
若上述方法无效,关闭详情后强制刷新Viewer视图,让交互系统重新识别点击目标:// 关闭详情后执行 viewer.impl.invalidate(true);排查事件监听有效性
在onSelectionEvent函数中添加日志,确认事件是否真的未触发,还是后续逻辑异常:function onSelectionEvent(event) { console.log('精灵点击事件触发:', event); // 原有业务逻辑... }
内容的提问来源于stack exchange,提问作者Gustavo da Costa e Silva
相关产品推荐
相关产品推荐

