2017-07-01 57 views
0

我使用a-frame構建了一個簡單的應用程序,並且我發現如果我在任何mouseup事件後在Android設備中運行應用程序,則光標在我點擊的位置移動。這有點煩人,因爲我使用了vrbox控制器中的mouseup事件,它們的指針位置與我的應用程序遊標不同。我想只使用mouseup事件來運行與我的光標指向的對象相關的事件(然後不由控制器箭頭指向)。aframe在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"); 
     }); 
     } 
    }); 
}); 

回答

0

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

我們通常不希望在現場測試一切交叉點(例如,碰撞或點擊)。由於相交測試是每秒運行60次以上的操作,所以選擇性交叉點對性能有好處,以限制要交叉測試的實體數量。

要選擇或挑選我們想要測試交集的實體,我們可以使用objects屬性。如果此屬性未定義,那麼raycaster將測試場景中的每個對象是否相交。對象需要查詢選擇器值:

+0

感謝這是有幫助的,但沒有解決我的問題,因爲從眼鏡控制器的mouseup事件移動視圖在點擊點。我想在mouseup事件後禁用相機旋轉。這個有可能? –