简体   繁体   English

Autodesk Forge 查看器 - 如何在 model 加载完成后触发事件?

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

How do I fire an event after model loading is complete? model 加载完成后如何触发事件?

I created the "basicSetting" function below.我在下面创建了“basicSetting”function。

function basicSetting(){
    viewer.setLightPreset(1);
    viewer.setQualityLevel(false, false);
    viewer.setGhosting(true);
    viewer.setGroundShadow(false);
    viewer.setGroundReflection(false);
    viewer.setEnvMapBackground(false);
    viewer.setProgressiveRendering(true);
}   

And I applied it to the "onDocumentLoadSuccess" function.我将它应用于“onDocumentLoadSuccess”function。

But it didn't work.但它没有用。

Help!帮助!

You can use the GEOMETRY_LOADED_EVENT as per this link and use it like this after you have initialised a viewer.您可以按照链接使用GEOMETRY_LOADED_EVENT并在初始化查看器后像这样使用它。

In typescript (using forge-typings)在 typescript 中(使用伪造类型)

this.viewer.addEventListener(Autodesk.Viewing.GEOMETRY_LOADED_EVENT, (x) => 
{ 
    basicSetting();
}

Or if you wanna be extra save and make sure the function is never called elsewhere, just remove it and place its contents in the event callback.或者,如果您想额外保存并确保 function 永远不会在其他地方调用,只需将其删除并将其内容放在事件回调中。

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

Not sure in which languages you are developing but it should be pretty simular !不确定您正在开发哪种语言,但它应该非常相似!

You can use a promise waiting for viewer loading finish like as:您可以使用 promise 等待查看器加载完成,如下所示:

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

}); }); await loadedPromise;等待加载的承诺;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM