#events #autodesk-forge #markup
#Мероприятия #autodesk-forge #разметка
Вопрос:
Как называется событие, когда мы начинаем рисовать разметку (круг, стрелку, прямоугольник и т.д.) На фигуре в режиме редактирования? И можем ли мы изменить тип разметки в этом событии?
Проблема в том, что когда мы находимся в режиме редактирования и выбрали определенную форму и цвет для рисования разметки, а в промежутке между ними, если мы выбираем любую разметку, инструмент рисования принимает эту форму и цвет для следующей разметки, которую нужно нарисовать, игнорируя тип и цвет разметки, которые мы выбрали ранее. Это нормальное поведение. Почему инструмент рисования использует конфигурацию последней выбранной разметки и переопределяет тип, который мы определяем через — new Autodesk.Просмотр.Расширения.Markups.Core.EditModeCloud(markupExt); Спасибо!
Ответ №1:
Это интересный вопрос. Я считаю, что текущее поведение разметок является разработанным, потому что обычно можно выбирать разметку только в том случае, если они хотят ее перемещать, масштабировать и т. Д. Вот почему в текущей реализации выбор разметки автоматически переходит в режим ее редактирования.
В то же время я понимаю ваше мнение, согласно которому, если я уже активировал определенный режим редактирования, кажется странным, что этот режим редактирования изменится после простого выбора другой разметки.
Позвольте мне обсудить это с командой инженеров, а пока я бы предложил использовать Autodesk.Viewing.Extensions.Markups.Core.EVENT_EDITMODE_CHANGED
событие для обнаружения изменения режима редактирования и, при необходимости, сброса режима на тот, который вы хотите.
Комментарии:
1. Большое спасибо за рассмотрение этого запроса. Обязательно изучит предлагаемое событие, чтобы сбросить выбранный режим разметки. Хотя с нетерпением ждем ваших выводов по этой теме. Большое спасибо.
2. Когда мы используем Autodesk.Просмотр. Расширения. Markups.Core.EVENT_EDITMODE_CHANGED чтобы обнаружить изменение и изменить режим редактирования в этом событии, он выдает ошибку стека вызовов в developer.api.autodesk.com/modelderivative/v2/viewers/7 .*/extensions/Markup/Markup.min.js . Пожалуйста, предложите. markupExt.addEventListener(Autodesk.Просмотр. Расширения. Markups.Core.EVENT_EDITMODE_CHANGED, (результат)=>{if(result.target.type !== _self._markupType) { markupExt.changeEditMode(markupDrawType); markupExt.setStyle(this._styleObject); }});
3. Я не смог воспроизвести проблему. Я предполагаю, что
_self._markupType
оно не обновляется должным образом до нового стиля, который вы хотите использовать перед вызовомmarkupExt.changeEditMode()
, который сразу вызовет тот же обработчик событий, что приведет к бесконечной рекурсии.