aframe在mouseup事件后阻止光标移动

时间:2017-07-01 20:18:57

标签: javascript angularjs virtual-reality aframe

我用一个框架构建一个简单的应用程序,我看到如果我在任何鼠标事件后在Android设备中运行应用程序,我的光标移动到我点击的位置。这有点烦人,因为我使用来自我的vrbox控制器的mouseup事件,其指针位于与我的app光标不同的位置。我想只使用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");
         });
       }
    });
});

1 个答案:

答案 0 :(得分:0)

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

  

我们通常不希望测试场景中的所有交叉点(例如,碰撞或点击)。选择性交叉点有利于性能,以限制测试交叉点的实体数量,因为交叉点测试是一种每秒运行60次以上的操作。

     

要选择或选择我们要测试交集的实体,我们可以使用objects属性。如果未定义此属性,则raycaster将测试场景中的每个对象以进行交集。对象采用查询选择器值: