У меня есть модель здания в Three js. Для моего варианта использования я выбираю компонент из модели здания и фиксирую uuid
компонента. Затем мне нужно нажать кнопку в меню, чтобы просмотреть подробную информацию. Меню вставляется в страницу в сценарии. Когда я нажимаю кнопку, он выбирает компонент здания, который остается за ним. Поэтому я не могу получить доступ к данным, которые я выбрал ранее. Выбор трех объектов js из прозрачного меню
На приведенном выше рисунке, например, у меня есть кнопки 1-3. Перед тем, как перейти к кнопкам, я выбираю один компонент модели здания. Затем, когда я нажимаю любую кнопку, мышь также выбирает компонент здания за ним, например окно за Button1, стену за Button2 и т. Д. Поэтому я не могу получить доступ к uuid
компонента, который я выбрал ранее. Как я могу предотвратить это? Ниже приведен код:
JA.addMenu = function() {
JA.menu = JA.container.appendChild(document.createElement('div'));
JA.menu.id = 'movable';
JA.menu.title = 'Move the menu around or click here to close the menu';
JA.menu.addEventListener('mousedown', JA.mouseMove, false);
JA.menu.innerHTML = '<a id=closerIcon href=JavaScript:JA.toggleMenu(); ><p><i class="fa fa-bars"></i></p></a>' +
'<p>' +
'<a href="" title=' + JA.TitleText2 + '>' + JA.TitleText1 + '' + JA.TitleText1 + '</a> ' +
'</p>' +
'<hr>' +
'';
window.addEventListener('mouseup', JA.mouseUp, false);
};
JA.Button1Tab = function() {
var tab = JA.menu.appendChild(document.createElement('div'));
tab.title = 'Button1';
tab.innerHTML =
'<a href=# onclick=JA.toggleDialogs(JA.aboutDialog); ><p class=button >' +
'<i class="fa fa-share-alt"></i> Button1' +
'</p></a>';
JA.aboutDialog = JA.container.appendChild(document.createElement('div'));
JA.aboutDialog.style.cssText = 'display: none; background-color: #ccc; left: 50px; opacity: 0.9; padding: 20px; ' +
'bottom: 0; left: 0; height: 370px; margin: auto; position: absolute; right: 0; top: 0; width: 500px; z-index:10; ';
JA.aboutDialog.innerHTML =
'<h3>' + document.title + ' ' + JA.titleIcon + '</h3>' +
+'<h4>Menu explains the following:</h4>'
'';
};
поэтому каждое интерактивное действие работает (например, поворачивает, выбирает, кастрюлю или что еще) игнорирует меню спереди? – mrapsogos
Все интерактивные действия работают правильно в Three js. Он не игнорирует меню. Функции, определенные для кнопок, работают хорошо. Для моего прецедента я иду в модель здания и выбираю один компонент в модели. Затем я нажимаю кнопку. Но затем он выбирает компонент здания, который находится за кнопкой, и после запуска функция, которую я определил для кнопки – yalcinm1
aha. поэтому контейнер и меню работают одновременно. Первый подход состоит в том, чтобы отделить клики (например, щелкнуть правой кнопкой мыши для выбора объекта и оставить для меню), второй подход заключается в том, чтобы распустить контейнер, пока отображается меню. Скажи мне, правильно ли я это сделаю, или тебе нужно что-то еще. – mrapsogos