【问题标题】:A-Frame on hover animations (mouseleave, mouseenter)悬停动画上的 A-Frame (mouseleave, mouseenter)
【发布时间】:2016-10-05 14:56:34
【问题描述】:

我有一个场景,其中有“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>

这是悬停框混合:

<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);
}

这会在用户悬停在“hoverbox”球体上时触发元素的重新定位。当光标离开悬停框时,它也会触发返回到其正常位置。

光标元素如下所示:

<a-entity cursor="fuse:true, fuseTimeout: 50;" raycaster="far: 10; objects: .hoverbox" />

所以它不会在其他对象上发出事件。

但是,这种行为有点错误。有时当光标离开球体时,不会触发 'hoveroff' 事件,而有时球体不会注册 mouseenter。

有人知道怎么做吗?

在这里查看完整代码:http://vr.dco.rocks/

【问题讨论】:

    标签: javascript aframe virtual-reality webvr


    【解决方案1】:

    这已在 A-Frame 主分支 https://github.com/aframevr/aframe/commit/e4900e16ea9228af39d2a4fef6798393e79bd82a 上修复,尽管代码中仍有一些问题。

    A-Frame 0.2.0 可能更可靠,也可能不更可靠?

    【讨论】:

    • 我已经转而使用遇到相同问题(但频率较低)的光线投射器。这也是自动修复的吗?
    • 还有。这是 Aframe 0.3.1 吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-15
    • 2012-08-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多