у меня есть сцена, где есть 'MouseEnter' объекты, которые инициируют действия на других объектах:-Frame по наведению анимации (MouseLeave, MouseEnter)
<a-entity class="hover" position="1.3 1.5 0" rotation="0 90 0">
<a-entity mixin="hoverbox"></a-entity>
<a-obj-model src="#profile1" scale="0.01 0.01 0.01" material="height: 512; width: 512" mixin="skybox">
<a-animation attribute="rotation" dur="10000" easing="linear" fill="forwards" to="0 360 0" repeat="indefinite"></a-animation>
<a-animation attribute="position" dur="300" to="0 0 -.5" begin="hoveron"></a-animation>
<a-animation attribute="position" dur="300" to="0 0 0" begin="hoveroff"></a-animation>
</a-obj-model>
</a-entity>
Это hoverbox Mixin:
<a-mixin id="hoverbox" class="hoverbox" material="color:#fff; opacity:.5;" geometry="primitive: sphere; radius: .45;"></a-mixin>
И это Javascript прилагается к нему:
var sceneEl = document.querySelector('a-scene');
var hoverEls = sceneEl.querySelectorAll('.hover');
for(var i = 0; i < hoverEls.length; i++) {
var hoverEl = hoverEls[i];
hoverElBox = hoverEl.querySelector('a-entity');
hoverElBox.addEventListener('mouseenter', function(evt) {
// evt.stopPropagation();
console.log('mouseenter', evt);
evt.target.nextElementSibling.emit('hoveron');
}, true);
hoverElBox.addEventListener('mouseleave', function(evt) {
// evt.stopPropagation();
console.log('mouseleave', evt.target.parentNode);
evt.target.nextElementSibling.emit('hoveroff');
}, true);
}
Это вызывает изменение положения элемента, когда американский er наводит сферу «hoverbox». Он также запускает возврат в нормальное положение, когда курсор покидает панель hoverbox.
Элемент курсор выглядит следующим образом:
<a-entity cursor="fuse:true, fuseTimeout: 50;" raycaster="far: 10; objects: .hoverbox" />
Так что не выделяет событие на других объектах.
Однако поведение является своего рода ошибкой. Иногда, когда курсор отходит от сферы, событие «hoveroff» не запускается, а в других случаях сфера просто не регистрирует центр мыши.
Кто-нибудь знает, как сделать эту работу?
Посмотрите здесь полный код: http://vr.dco.rocks/
С тех пор я перешел к использованию raycaster, у которого были те же проблемы (но реже). Это также автоматически фиксируется? – xaddict
Также. это Aframe 0.3.1? – xaddict