【发布时间】:2017-03-18 00:02:57
【问题描述】:
我们在网络应用中内置了自定义状态保存功能,主要基于 Philippe 创建的“屏幕截图管理器”扩展。我们遇到了选择问题,其中一些在保存状态时隐藏的组件在加载状态时显示出来。我已经在 viewer.autodesk.io 上使用原版状态管理器代码复制了它。
确切地说,在查看器中已经可见的组件通过在模型浏览器上按住 CTRL 键单击而被隐藏,它们最初会在查看器中消失。但是,当您保存此状态并在以后调用该状态时,以这种方式隐藏的组件会重新出现。
您能否调查一下 - 这是状态管理器代码中的错误(我们查看了但找不到 - 隐藏的组件被记录在状态中)还是查看器本身中的错误?
谢谢, 克里斯
【问题讨论】:
-
通过“屏幕截图管理器”,我假设您实际上是指“状态管理器”,否则问题会很混乱......到目前为止,我并没有像你描述的那样重现这个问题。你能看看我最新的样品吗:forge-rcdb.autodesk.io/viewer?id=57efaead77c8eb0a560ef465。我创建了 2 个状态“直接隐藏”和“浏览器隐藏”,这对我来说似乎工作正常。此外,保存状态只是一个 json 对象,因此您可以轻松查看保存状态的外观,并查看所选隐藏的 dbId 是否已正确保存在状态中。
-
您也可以使用非缩小版的 viewer3D.js 并在“restoreState”函数中放置断点来检查那里发生了什么。
-
嗨菲利普。抱歉 - 我指的是“状态管理器”,我可以通过执行以下操作复制您的最新代码:在模型浏览器中选择子组件 D-400687:1。然后 CTRL-单击零件 D400550:1 将其隐藏。保存状态。然后加载之前的状态并返回到新的状态。您会发现零件 D400550:1 将在状态中可见。您还可以通过在查看器中选择相同的部分并通过右键单击将其隐藏来进行复制。它仍然回来。据我们所知,dbId 没有存储在 JSON 对象中。
-
无法重现您所描述的问题,看看这段简短的录音,让我知道我错过了什么:screencast.com/t/Xpn1pZ5g
-
首先选择子组件 D-400687:1,以便隐藏座位的其余部分。然后尝试隐藏相同的部分。观看此视频并查看我在查看器中保存的状态。 screencast.com/t/6Evm2htB
标签: autodesk-forge autodesk-viewer