Вызов метода ToolController.DeactiveTool в пользовательском инструменте Forge Viewer не запускается в Windows, пока он рJavascript

Форум по Javascript
Ответить Пред. темаСлед. тема
Anonymous
 Вызов метода ToolController.DeactiveTool в пользовательском инструменте Forge Viewer не запускается в Windows, пока он р

Сообщение Anonymous »

Я пытаюсь создать пользовательский инструмент для просмотра Forge, который позволяет только расширение выбора ящика, пока клавиша Shift нажимается. Это работает, как и ожидалось, на устройствах Mac, но в Windows он включает в себя выбор ящика, но никогда не деактивирует выбор ящика, как только клавиша Shift выйдет. Как и ожидалось на обеих платформах. Так что мне кажется внутренней проблемой с функцией DeactiveTool. Я попытался отладить свой путь через это, и я вижу, что в функциях есть какая-то специальная логика MAC, но основная причина проблемы мне не подходит. < /p>
/**
* Custom forge viewer tool to restrict box-selection to the shift key
* @param viewer Reference to the forge viewer instance
* @see {@link https://aps.autodesk.com/blog/custom-tools-forge-viewer | Forge Documentation}
*/
export const getCustomBoxSelectionTool = (viewer) => {
if (!viewer?.toolController) return null;

const customTool = {
active: false,
getName: () => 'custom-box-selection',
getNames: () => ['custom-box-selection'],
getPriority: () => 1, // Set priority in the tool chain
activate: () => {
customTool.active = true;
},
deactivate: () => {
customTool.active = false;
},
handleKeyDown: (event, keyCode) => {
// Prevent the default box-selection behaviour
if (event.key === 'Control' || keyCode === 17) {
viewer.toolController.deactivateTool('box-selection');
return true; // Stop propagation
}

// Enable new box-selection behaviour
if (event.key === 'Shift' || keyCode === 16) {
viewer.toolController.activateTool('box-selection');
}

return false; // Allow propagation
},
handleKeyUp: (event, keyCode) => {
// Disable box-selection after shift is released
if (event.key === 'Shift' || keyCode === 17) {
viewer.toolController.deactivateTool('box-selection');
}

return false; // Allow propagation
}
};

return customTool;
};
< /code>
Примечание Я добавил чеки на событие. Кей и Key -код, так как это было предложенной разницей между двумя платформами, но это не имело никакого значения. У кого -нибудь есть какое -либо представление об этом?


Подробнее здесь: https://stackoverflow.com/questions/793 ... om-tool-is
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Javascript»