问题描述
我创建了一个.net核心应用程序,该应用程序可以加载伪造查看器, 我正在从数据库(手动插入)加载标记, 现在,当创建或更新标记时,我需要插入/更新标记。 我正在尝试处理事件EVENT_MARKUP_DRAGGING,但是在创建或拖动标记时不会触发该事件。
这是我的代码:
var options = {
env: 'AutodeskProduction',api: 'derivativeV2',// for models uploaded to EMEA change this option to 'derivativeV2_EU'
getAccessToken: function (onTokenReady) {
var token = result;
var timeInSeconds = 3600; // Use value provided by Forge Authentication (OAuth) API
onTokenReady(token,timeInSeconds);
}
};
Autodesk.Viewing.Initializer(options,function () {
var htmlDiv = document.getElementById('forgeViewer');
viewer = new Autodesk.Viewing.GuiViewer3D(htmlDiv,config3d);
var startedCode = viewer.start();
if (startedCode > 0) {
console.error('Failed to create a Viewer: WebGL not supported.');
return;
}
console.log('Initialization complete,loading a model next...');
var documentId = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX';
Autodesk.Viewing.Document.load(documentId,onDocumentLoadSuccess,onDocumentLoadFailure);
function onDocumentLoadSuccess(viewerDocument) {
var defaultModel = viewerDocument.getRoot().getDefaultGeometry();
viewer.loadDocumentNode(viewerDocument,defaultModel);
viewer.loadExtension("Autodesk.Viewing.MarkupsCore").then(function (markupsExt) {
markup = markupsExt;
const namespace = Autodesk.Viewing.Extensions.Markups.Core;
markup.addEventListener(namespace.EVENT_MARKUP_DRAGGING,function (ev) {
console.log(ev.markup);
selectedmarkup = ev.markup;
$(".TypeMarkup").text(selectedmarkup.type);
$(".IDMarkup").text(selectedmarkup.id);
});
});
}
function onDocumentLoadFailure() {
console.error('Failed fetching Forge manifest');
}
});
解决方法
很遗憾,似乎EVENT_MARKUP_DRAGGING
事件不再被触发。我将与查看者工程团队仔细检查以了解原因。
在含义上,我建议使用每次修改标记时都会触发的EVENT_EDITFRAME_EDITION_START
和EVENT_EDITFRAME_EDITION_END
事件。