Обработчик щелчков не работает с простейшими объектами gerarty

Я добавил обработчик кликов примитивной геометрии из рамки, как показано ниже:

<a-scene>
  <a-sphere id="ball" cursor-listener material="color: red" position="-3 3 -5" onclick="showplane('#box1')" >
  </a-sphere>
</a-scene>
  

Я хочу анимировать геометрию плоскости при нажатии на сферу, и когда плоскость становится видимой для пользователя, мне нужно прикрепить обработчик щелчка для плоскости.

JS скрипка: https://jsfiddle.net/bhupi1011/9ptLqa32/

Обработчики кликов не работают ни с одной из геометрий.

Благодарю.

1 ответ

Вы должны добавить курсор на сцену. Для щелчка мышью вы можете сделать:

<a-scene cursor="rayOrigin: mouse">

Используйте компонент для обработки событий кликов:

AFRAME.registerComponent('select', {
  init: function () {
    var originalColor = this.el.getAttribute('material').color;
    var self = this;
    this.el.sceneEl.addEventListener('click', function (evt) {
      var color;
      if (evt.detail.intersectedEl === undefined) { return; }
      var color = evt.detail.intersectedEl === self.el ? 'green' : originalColor;
      self.el.setAttribute('color', color);
    }, false);
  }
});

Демо: https://jungle-plate.glitch.me/

Код: https://glitch.com/edit/#!/jungle-plate?path=select.js:12:3

Другие вопросы по тегам