【问题标题】:aframe block cursor movement after mouseup eventmouseup 事件后 aframe 块光标移动
【发布时间】:2017-07-02 13:50:43
【问题描述】:

我用 a-frame 构建了一个简单的应用程序,我发现如果我在任何 mouseup 事件之后在 android 设备中运行该应用程序,我的光标就会移动到我点击的位置。这有点烦人,因为我使用 vrbox 控制器中的 mouseup 事件,该控制器的指针与我的应用程序光标位于不同的位置。我只想使用 mouseup 事件来运行与我的光标指向的对象相关的事件(然后不是由控制器箭头指向)。

可能的解决方案是在任何 mouseup 事件之后阻止光标位置。有办法做到这一点吗?在此先感谢我的代码是这样的

home.html

<a-scene>
  <a-entity id='cameraWrapper' position="0 -3 0" rotation="0 45 0">
    <a-camera>
      <a-entity cursor="fuse: true; fuseTimeout: 100;"
            position="0 0 -1"
            geometry="primitive: ring; radiusInner: 0.005; radiusOuter: 0.01"
            material="color: black; shader: flat">
       </a-entity>
    </a-camera>
  </a-entity>

  <a-sky id="image-360" radius="20" src="./img/startroomHD.jpg"></a-sky>

  <a-box event-listener position="-8 0 -8" rotation="0 45 0" depth="1" height="10" width="20"></a-box>
</a-scene>

controller.js

angular.module('app.controller', ['app.service', 'firebase', 'ngCordova'])

.controller('HomeCtrl', function($scope){
      AFRAME.registerComponent('event-listener', {
      init: function () {
         this.el.addEventListener('mouseup', function(evt){
             console.log("ciao");
         });
       }
    });
});

【问题讨论】:

    标签: javascript angularjs virtual-reality aframe


    【解决方案1】:

    https://aframe.io/docs/0.6.0/components/raycaster.html#whitelisting-entities-to-test-for-intersection

    我们通常不想测试场景中的所有东西是否有交叉(例如,碰撞或点击)。选择性交叉点对性能有好处,可以限制要测试交叉点的实体数量,因为交叉点测试是每秒运行超过 60 次的操作。

    要选择或挑选我们想要测试相交的实体,我们可以使用 objects 属性。如果未定义此属性,则光线投射器将测试场景中的每个对象是否相交。 objects 接受查询选择器值:

    【讨论】:

    • 谢谢,这很有帮助,但不能解决我的问题,因为来自眼镜控制器的 mouseup 事件会在点击点移动视图。我想在 mouseup 事件后禁用相机旋转。这可能吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多