Autodesk Forge Viewer - 如何在模型加载完成后触发事件?

Autodesk Forge Viewer - How do I fire an event after model loading is complete?

如何在模型加载完成后触发事件?

我在下面创建了 "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" 函数。

但是没有用。

求助!

您可以按照 this link 使用 GEOMETRY_LOADED_EVENT 并在初始化查看器后像这样使用它。

在 typescript 中(使用 forge-typings)

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);
}

不确定您正在使用哪种语言开发,但应该非常相似!

您可以像这样使用等待查看器加载完成的承诺:

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
);

}); 等待加载的承诺;