2013-06-21 2 views
3

Я создаю простое веб-приложение. В рамках этого я хочу использовать dat.GUI, поскольку это, кажется, самый простой способ.dat.GUI пользовательский ввод не работает

Что я хочу делать: Я использую three.js для отображения объекта. По этому объекту я хочу какой-то GUI (в настоящее время использующий dat.GUI), который позволяет пользователю вводить поисковый запрос и нажимать кнопку, чтобы затем вызвать функцию, которая использует термин поиска.

До сих пор я создал переменную, называемую поисковым термином, и добавила ее в графический интерфейс. Это отлично работает, и отображается значение переменной. Графический интерфейс также способен прослушивать переменную и обновлять ее после ее изменения. Но я не могу изменить значение. Я также добавил поле, чтобы отрегулировать интенсивность света, который я добавил в szene, в три раза. Для этой части графического интерфейса, регулирующего значение, перетаскивая панель, но попытка ввода значения не выполняется.

код выглядит примерно так:

var searchterm = ''; 
... 

function init(){ 
.... 
var gui = new dat.GUI(); 
gui.add(light, 'intensity').min(1).max(10).listen(); 
gui.add(this, 'searchterm').listen(); 

} 

Любая помощь, почему я не могу изменить значения или предложения для других легко использовать ГПИ будет оценен.

+0

для примеров использования dat.gui с three.js, проверьте http://stemkoski.github.io/Three.js/ –

+0

Эти примеры имеют одинаковую проблему. –

ответ

2

Возможно, заказ z может стать неправильным? Я не могу найти ничего более легкого в использовании, чем dat gui.

.main { 
    z-index: 5; 
} 

Убедитесь, что этот элемент спереди. Помимо этого, я уверен, в чем проблема.

+0

Я использовал голые кости, и это исправило мою проблему, спасибо! z-index необходимо было 0, потому что dat.gui был закрыт, когда окно ThreeJS находилось в z-index 1 – Orbitus007

6

Не уверен, что это поможет, но это была проблема, с которой я столкнулся. Если у вас есть какие-либо элементы управления камерой, связанные с вашим холстом three.js, это может помешать графическому интерфейсу. Например, вы могли бы регулировать ползунки, но не редактировать текст. При подключении управления к three.js камеру с, например, new THREE.OrbitControls(camera);, убедитесь, чтобы указать элемент Three.js Dóm в качестве второго параметра, как это:

new THREE.OrbitControls(camera, document.getElementById('threeCanvas'));

+0

Это помогает с большинством проблем, которые могут возникнуть с элементами управления орбиты и dat.gui, но я не думаю, что он решает проблема, о которой идет речь. Большой совет. –

8

У меня есть некоторые проблемы.

Он исходит из функции «.listen()». Это багги.

удалить .listen(), и он будет работать.

+0

Woah, не знаю, почему это исправлено, но это решение. Благодаря тонну. –

+0

Я вижу ту же проблему. Есть ли версия DAT GUI, которая устраняет эту проблему? –

+0

Такая же проблема здесь, но я не использую '.listen()'. :( – ygormutti

1

У меня была та же проблема. В моем случае это было вызвано следующим CSS:

span { 
    margin: 0 10px; 
} 

Применения стиля к вновь созданному классу вместо span решил.

+0

Я использовал голые кости, и это исправляло мою проблему, спасибо! – Orbitus007

+0

z-index должно быть 0, потому что дата.gui был закрыт, когда окно ThreeJS было в z-index 1 ... так что этот ответ помог мне понять, что – Orbitus007