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

时间:2020-05-26 06:12:37

标签: autodesk-forge autodesk-viewer

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

我在下面创建了“ 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”功能。

但这没用。

帮助!

2 个答案:

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

}); 等待加载承诺;