Путаница с этим на слушателя? - PullRequest
0 голосов
/ 14 сентября 2018

У меня есть несколько объектов в сцене, которые запускаются извне, чтобы быть видимыми.Когда они видны и пользователь наводит на них курсор (на основе взгляда, поэтому, когда пользователь смотрит на объект), должно воспроизводиться аудио, уникальное для каждого объекта.Когда пользователь смотрит в другое место, звук должен прекратиться.

Проблема, с которой я сталкиваюсь, заключается в том, что слушатель в моем пользовательском компоненте, кажется, не знает, какой объект воспроизводится, когда открыто более одного объекта одновременно, и остановится/ начать неправильный звук.Как мне убедиться, что слушатель предназначен для правильной сущности?

Ссылка на это: Воспроизведение звука при нажатии в A-Frame

js:

AFRAME.registerComponent('play-audio', {
init:function() {
let playing = false;
let audio = this.el.components.sound;

this.el.addEventListener('mouseenter', () => {
  var viz = this.el.getAttribute('material').visible;
  if (viz){
    if(!playing) {
      audio.playSound();
    } else {
      audio.stopSound();
    }
    playing = !playing;
  }

});
this.el.addEventListener('mouseleave', () => {
  audio.stopSound();
  playing = !playing;
})
}
})

пример HTML:

<a-sound  id="popup1" data-clickable play-audio autoplay="false" loop="false" volume="5"  visible="false" src="#audio1">
</a-sound>

<a-sound  id="popup2" data-clickable play-audio autoplay="false" loop="false" volume="5"  visible="false" src="#audio2">
</a-sound>

1 Ответ

0 голосов
/ 15 сентября 2018

Привязки выглядят правильно.

Это потому, что оба звука пересекаются / рассматриваются одновременно? видимость не выключает Raycaster, я не думаю. Вы можете добавить / удалить атрибут clickable для данных.

...