我在Autodesk Viewer LayerManager扩展中遇到了一个破坏restoreState功能的错误。我使用getState保存多层DWG文件的状态,并使用restoreState重新应用该状态。当我恢复状态时,大多数或所有图层都被隐藏,即使它们不是我保存状态时也是如此。
看起来这是一个如何保存和解释状态的问题。我挖到状态JSON并找到了这种形式的可见层列表(state.objectSet[0].isolated
):
["0","1","2","3","4","5"]
经过一些实验,我发现LayerManager期望层的整数索引或层的字符串名称。就像是:
[0,1,2,3,4,5]
要么
["layer0","layer1","layer2","layer3","layer4","layer5"]
(假设这些是每一层的名称)
因此,当前实现中断,因为它查找名称为“0”,“1”,“2”等的层,无论实际层名称是什么。
我想知道是否有办法解决或解决这个问题。一个临时解决方案是解析状态JSON并将层数转换为整数但这有点像黑客。
这是一个已知问题,目前我们的工程师正在研究。可以继续关注我们的Forge Blog,并留意发布说明,以密切关注修复。
与此同时,作为快速解决方法,您可以在加载所有图形后以编程方式显示所有图层:
viewer.addEventListener(Autodesk.Viewing.GEOMETRY_LOADED_EVENT, ()=>viewer.showAll())