在模型加载完成后如何触发事件?
我在下面创建了“ basicSetting”功能。
function basicSetting(){
viewer.setLightPreset(1);
viewer.setQualityLevel(false, false);
viewer.setGhosting(true);
viewer.setGroundShadow(false);
viewer.setGroundReflection(false);
viewer.setEnvMapBackground(false);
viewer.setProgressiveRendering(true);
}
然后将其应用于“ onDocumentLoadSuccess”功能。
但这没用。
帮助!
答案 0 :(得分:2)
您可以按this链接使用GEOMETRY_LOADED_EVENT
,并在初始化查看器后像这样使用它。
在打字稿中(使用伪造类型)
this.viewer.addEventListener(Autodesk.Viewing.GEOMETRY_LOADED_EVENT, (x) =>
{
basicSetting();
}
或者,如果您想额外保存并确保该函数从未在其他地方调用,只需将其删除并将其内容放在事件回调中即可。
this.viewer.addEventListener(Autodesk.Viewing.GEOMETRY_LOADED_EVENT, (x) =>
{
this.viewer.setLightPreset(1);
this.viewer.setQualityLevel(false, false);
this.viewer.setGhosting(true);
this.viewer.setGroundShadow(false);
this.viewer.setGroundReflection(false);
this.viewer.setEnvMapBackground(false);
this.viewer.setProgressiveRendering(true);
}
不确定您使用哪种语言开发,但应该非常相似!
答案 1 :(得分:0)
您可以使用承诺等待查看器加载完成,例如:
var loadedPromise = new Promise((resolve, reject) => {
var listener = function (event) {
baseViewer.removeEventListener(
Autodesk.Viewing.GEOMETRY_LOADED_EVENT,
listener
);
resolve();
}
baseViewer.addEventListener(
Autodesk.Viewing.GEOMETRY_LOADED_EVENT,
listener
);
}); 等待加载承诺;