Я новичок в использовании A-frame и пытаюсь разобраться.Прямо сейчас я погружаюсь в бит взаимодействия.Следующий javascript, который я нашел, взят с веб-сайта, который я нашел (сейчас не могу найти ссылку), который меняет цвет поля при нажатии.Поле отображается в стиле маркера (AR).
// Component to change to a sequential color on click.
AFRAME.registerComponent('cursor-listener', {
init: function() {
var lastIndex = -1;
var COLORS = ['red', 'green', 'blue'];
this.el.addEventListener('click', function(evt) {
lastIndex = (lastIndex + 1) % COLORS.length;
this.setAttribute('material', 'color', COLORS[lastIndex]);
});
}
});
HTML:
<a-scene oriscene cursor="rayOrigin: mouse">
<a-marker preset='custom' type='pattern' url='tiger.patt'>
<a-box cursor-listener position="0 0 0" color="skyblue"></a-box>
<a-text id="text-box" value="Clicked!"></a-text>
</a-marker>
<!-- add a basic camera -->
<!-- So object will land on marker -->
<a-entity camera></a-entity>
</a-scene>
Поэтому я пытаюсь выяснить, как получить элементдля использования в скрипте и установить его атрибут.в моем html-файле <a-text>
, который я хочу скрыть по умолчанию, появляется при нажатии на поле, так как у меня уже есть код щелчка.Но мне трудно это скрыть.Я попытался:
var text = document.querySelector('#text-box');
text.setAttribute('visible', false);
, но он все еще виден, когда я запускаю его на локальном хосте.я сделал console.log(text)
и консоль вернула ноль.Значит, a-text
не выбран?
Я думал об установке элемента по умолчанию как visible="false"
, затем изменил его на true в функции щелчка, но также думал о том, как получить элемент в первую очередь?
РЕДАКТИРОВАТЬ: в соответствии с просьбой
глюк, чтобы попробовать то, о чем я говорю .Я настроил его на использование маркера hiro.
Извините за длинный пост.Заранее спасибо!
РЕДАКТИРОВАТЬ 2: найдено решение
Мне пришлось добавить атрибут примитива в <a-text>
.как:
<a-text id="text-box" value="Clicked!" geometry='primitive: plane'></a-text>
, а затем, конечно, получить его с помощью .querySelector