我希望能够在伪造查看器中显示模型,但是在模型显示之前,我需要更改其默认材质。当前,我注册了Autodesk.Viewing.GEOMETRY_LOADED_EVENT,当收到事件时,我将隐藏模型,更改材质,然后显示模型。除默认模型在隐藏之前在查看器中显示一两秒钟外,此方法有效。如何防止这种情况发生?
初始化查看器后,这里是加载文档的代码。如果我尝试隐藏模型,如下面注释代码所示,则查看器将返回此错误。隐藏它之前,我必须等待几何加载事件。
wgs.js?v = v3.3:17876未捕获的TypeError:无法读取未定义的属性'getGeometryList' 在RenderScene.getGeometryList(wgs.js?v = v3.3:17876) 在Viewer3DImpl.onLoadComplete(viewer3D.js?v = v3.3:32002)
这是我正在运行的代码:
Autodesk.Viewing.Document.load(
documentId, (doc) => {
var geometryItems = Autodesk.Viewing.Document.getSubItemsWithProperties(doc.getRootItem(), { 'type': 'geometry' }, true);
if (geometryItems.length > 0) {
viewer.load(doc.getViewablePath(geometryItems[0]), null, (model) => {
// Document loaded
// Can't hide model here, viewer returns an error because geometry
// is not loaded
//viewer.hideModel(model.id);
resolve(model.id);
}); // show 1st view on this document...
}
},
function (errorMsg) { // onErrorCallback
console.log('Load Document returned error message: ' + errorMsg);
}
)
答案 0 :(得分:0)
我只需要显示一个预先罐装的jpg图像预览来代替伪造画布。
即。 1.隐藏样式为'display:none'的伪造画布 2.显示您的Preview-jpg代替伪造画布 3.等待TEXTURES_LOADED_EVENT事件,像这样...