标记核心 enterEditMode() 返回 false
Markups Core enterEditMode() returning false
function newMarkupGUI(viewer, options) {
Autodesk.Viewing.Extension.call(this, viewer, options);
thisViewerId = options.id;
this.viewer.loadExtension("Autodesk.Viewing.MarkupsCore").then(() => {
let extension = this.viewer.getExtension("Autodesk.Viewing.MarkupsCore");
extension.enterEditMode();
console.log(extension.enterEditMode());
});
}
当我在初始化查看器的主 js 文件中时,我可以访问 enterEditMode() 等函数,如下所示:
var extension = viewer.getExtension("Autodesk.Viewing.MarkupsCore");
extension.enterEditMode();
这行得通。但是在我名为 newMarkupsGUI 的扩展中,getExtension() 似乎不起作用。我对这一切如何运作感到困惑,因为文档非常稀少。我宁愿将我的扩展 分开 而不是在我初始化查看器的地方对标记的功能进行硬编码。任何帮助将不胜感激,谢谢。
我认为您的问题与 viewer 参考有关。如果您将 viewer
作为函数参数,则无需使用 this.viewer
。
使用 viewer.loadExtension().then()
时,加载的扩展会在承诺中返回。
你可以这样做:
viewer.loadExtension("Autodesk.Viewing.MarkupsCore").then((markupExtension) =>
{
markupExtension.enterEditMode();
});
function newMarkupGUI(viewer, options) {
Autodesk.Viewing.Extension.call(this, viewer, options);
thisViewerId = options.id;
this.viewer.loadExtension("Autodesk.Viewing.MarkupsCore").then(() => {
let extension = this.viewer.getExtension("Autodesk.Viewing.MarkupsCore");
extension.enterEditMode();
console.log(extension.enterEditMode());
});
}
当我在初始化查看器的主 js 文件中时,我可以访问 enterEditMode() 等函数,如下所示:
var extension = viewer.getExtension("Autodesk.Viewing.MarkupsCore");
extension.enterEditMode();
这行得通。但是在我名为 newMarkupsGUI 的扩展中,getExtension() 似乎不起作用。我对这一切如何运作感到困惑,因为文档非常稀少。我宁愿将我的扩展 分开 而不是在我初始化查看器的地方对标记的功能进行硬编码。任何帮助将不胜感激,谢谢。
我认为您的问题与 viewer 参考有关。如果您将 viewer
作为函数参数,则无需使用 this.viewer
。
使用 viewer.loadExtension().then()
时,加载的扩展会在承诺中返回。
你可以这样做:
viewer.loadExtension("Autodesk.Viewing.MarkupsCore").then((markupExtension) =>
{
markupExtension.enterEditMode();
});