2017-01-28 12 views
1

カーソルリスナーが設定されているエンティティでクリックイベントがトリガーされていません。ここに私のソースコードです。Aframe:デスクトップ上でトリガーしないカーソルクリックイベント

<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="utf-8"> 
    <title>Panorama</title> 
    <meta name="description" content="Panorama — A-Frame"> 
    <script src="https://cdnjs.cloudflare.com/ajax/libs/aframe/0.4.0/aframe.min.js"></script> 
    <script type="javascript" > 

    AFRAME.registerComponent('cursor-listener', { 
     init: function() { 
     var COLORS = ['red', 'green', 'blue']; 
     this.el.addEventListener('click', function (evt) { 
      var randomIndex = Math.floor(Math.random() * COLORS.length); 
      this.setAttribute('material', 'color', COLORS[randomIndex]); 
      console.log('I was clicked at: ', evt.detail.intersection.point); 
     }); 
     } 
    }); 

    </script> 
</head> 
<body> 
<a-scene> 
    <a-sky src="image.jpg" rotation="0 0 0"></a-sky> 
    <a-camera fov=60 > 
     <a-entity cursor="fuse: false; fuseTimeout: 500;" 
        position="0 0 -1" 
        geometry="primitive: ring; radiusOuter: 0.05; radiusInner: 0.02" 
        material="color: white; shader: flat" > 
     </a-entity> 
    </a-camera> 
    <a-box color="#aa77dd" cursor-listener width="50" height="10" depth="20" position="-7.45 40.00 -141.77" id="Play"> 
    </a-box> 
</a-scene> 
</body> 
</html> 

電話機やデスクトップブラウザでこれをやってみましたが、どちらも動作しませんでした。

+0

どのようにクリックしようとしていますか?デスクトップ上の – ngokevin

+0

をマウスでクリックするだけで、ボックスに触れる電話機でクリックするだけです。それはあなたの質問に答えますか? – user3648939

答えて

1

カーソルコンポーネントは、マウスでカメラをドラッグしてエンティティを表示するデスクトップ上で動作します。モバイルでは、ヒューズやCardboardボタンを使用しています。 VR上では、視線に基づいています。

マウスをクリックしたり電話を叩いたりするだけでは機能しません。見てくださいhttps://github.com/mayognaise/aframe-mouse-cursor-component

+0

ボックス上のカメラエンティティでリングをドラッグして配置すると、ボックスの色が変わりますが、正しいですか?現在、それはやっていません。 – user3648939

+0

デスクトップをドラッグ&クリックします。または、 'fuse'をtrueに設定すると、ドラッグした後にそれをクリックすることができます。 – ngokevin

関連する問題