Autodesk forge 如何在查看器上设置灯光主题?

Autodesk forge 如何在查看器上设置灯光主题?,autodesk-forge,Autodesk Forge,我有以下示例代码,用于初始化查看器: <div id="viewer"></div> <script> var app; var options = { env: 'AutodeskProduction', accessToken: 'mytoken' }; var urn = 'myUrn'; Autodesk.Viewing.Initializer(options, function() { app = new

我有以下示例代码,用于初始化查看器:

<div id="viewer"></div>
<script>
  var app;
  var options = {
    env: 'AutodeskProduction',
    accessToken: 'mytoken'
  };
  var urn = 'myUrn';
  Autodesk.Viewing.Initializer(options, function() {
    app = new Autodesk.Viewing.ViewingApplication('viewer');
    app.registerViewer(app.k3D, Autodesk.Viewing.Private.GuiViewer3D);
    function onDocumentLoadSuccess() {
      const viewables = app.bubble.search({ 'type': 'geometry' });
      app.selectItem(viewables[0].data);
    }
    function onDocumentLoadFailure() {}
    app.loadDocument('urn:' + urn, onDocumentLoadSuccess, onDocumentLoadFailure);
  });
</script>

var-app;
变量选项={
环境:“AutodeskProduction”,
accessToken:“mytoken”
};
var urn='myUrn';
Autodesk.Viewing.Initializer(选项,函数(){
app=新的Autodesk.Viewing.Viewing应用程序(“查看器”);
app.registerViewer(app.k3D,Autodesk.Viewing.Private.GuiViewer3D);
函数onDocumentLoadSuccess(){
const viewables=app.bubble.search({'type':'geometry'});
app.selectItem(视图[0]。数据);
}
函数onDocumentLoadFailure(){}
app.loadDocument('urn:'+urn,onDocumentLoadSuccess,onDocumentLoadFailure);
});
我想使用轻主题,但我不知道如何做到这一点。 如何将灯光主题设置为查看器?
谢谢

您正在寻找以下API吗?只需在查看器初始化后调用此方法

/**
* Sets the current UI theme of the viewer.
* Supported values are "light-theme" and "dark-theme", which is the default.
* 
* @param {string} name - Name of the theme, it will be added to the viewer's container class list.
* 
* @alias Autodesk.Viewing.Viewer3D#setTheme
*/
Viewer3D.prototype.setTheme = function (name) {
};
如下所示修改代码,并在onItemLoadSuccess()中添加一行代码。 viewerApp.myCurrentViewer.setTheme(“灯光主题”)


var-viewerApp;
变量选项={
环境:“AutodeskProduction”,
getAccessToken:函数(onGetAccessToken){
//
//TODO:将下面的静态访问令牌字符串替换为从后端获取新令牌的调用
//这两个值都由Forge的身份验证(OAuth)API提供。
//
//Forge的身份验证(OAuth)API返回值示例:
// {
//“访问令牌”:“,
//“令牌类型”:“承载者”,
//“到期日”:86400
// }
//
var accessToken='mytoken';
var expireTimeSeconds=60*30;
onGetAccessToken(accessToken,expireTimeSeconds);
}
};
让config3d={
}; 
var documentId='urn:myurn';
Autodesk.Viewing.Initializer(选项,函数初始化(){
viewerApp=新的Autodesk.Viewing.ViewingApplication(“MyViewerDiv”);
viewerApp.registerViewer(viewerApp.k3D、Autodesk.Viewing.Private.GuiViewer3D、config3d);
viewerApp.loadDocument(documentId、onDocumentLoadSuccess、onDocumentLoadFailure);
});
函数onDocumentLoadSuccess(doc){
//我们仍然可以使用Document.getSubItemsWithProperties()
//但是,当使用ViewingApplication时,我们可以访问**气泡**属性,
//它引用包装清单JSON中每个对象的图的根节点。
var viewables=viewerApp.bubble.search({'type':'geometry'});
如果(viewables.length==0){
console.error('文档不包含任何视图');
回来
}
//选择任意一个Available视图
viewerApp.selectItem(视图[0]。数据、onItemLoadSuccess、onItemLoadFail);
}
函数onDocumentLoadFailure(viewerErrorCode){
错误('onDocumentLoadFailure()-errorCode:'+viewerErrorCode);
}
函数onItemLoadSuccess(查看器,项){
log('onitmloadsuccess()!');
viewerApp.myCurrentViewer.setTheme(“灯光主题”);
}
函数onItemLoadFail(错误代码){
错误('onItemLoadFail()-errorCode:'+errorCode);
}

您可以在初始化器内部添加

Autodesk.Viewing.Initializer(options, function onInitialized() {
            viewer = new Autodesk.Viewing.GuiViewer3D(document.getElementById('MyViewerDiv'));
            viewer.setTheme("light-theme");
            viewer.start();

            loadDocument(....)
        });

您好,非常感谢,但我看不到什么是“myCurrentViewer”?viewerApp.getCurrentViewer()如何?该方法/属性将返回Viewer3D实例。
Autodesk.Viewing.Initializer(options, function onInitialized() {
            viewer = new Autodesk.Viewing.GuiViewer3D(document.getElementById('MyViewerDiv'));
            viewer.setTheme("light-theme");
            viewer.start();

            loadDocument(....)
        });