Aframe 注册a-scene中的每次单击

Aframe 注册a-scene中的每次单击,aframe,Aframe,我想在一个框架中开发一个应用程序,在那里每次点击都会被注册,并引导我进入下一张图片(a-sky)。目前,我有一个图片,我绑定的链接。我用它作为基本的例子,并从中得到发展 <a-scene> <a-assets> <img id="home" crossorigin="anonymous" src="media/home1600.png"> <img id="back" crossorigin="anonymous" src="medi

我想在一个框架中开发一个应用程序,在那里每次点击都会被注册,并引导我进入下一张图片(a-sky)。目前,我有一个图片,我绑定的链接。我用它作为基本的例子,并从中得到发展

<a-scene>
  <a-assets>
    <img id="home" crossorigin="anonymous" src="media/home1600.png">
    <img id="back" crossorigin="anonymous" src="media/back1600.png">
    <img id="forward" crossorigin="anonymous" src="media/forward1600.png">
    <!-- other pictures ... -->

    <!-- Image link template to be reused. -->
    <script id="link" type="text/html">
      <a-entity class="link"
        geometry="primitive: plane; width: 0.25; height: 0.25;"
        material="shader: flat; src: ${thumb};"
        event-set__1="_event: mousedown; scale: 1 1 1"
        event-set__2="_event: mouseup; scale: 1.2 1.2 1"            
        set-image="on: click; target: #image-360; src: ${src}; action: ${action}"
        sound="on: click; src: #click-sound"></a-entity>
    </script>
  </a-assets>

  <!-- 360-degree image. -->
  <!-- Dynamically create a-sky in javascript -->
  <a-sky id="image-360" radius="10" src="#pic0" phi-start="275"></a-sky>

  <input type="hidden" id="pic_num" value="0">

  <!-- Image links. -->
  <a-entity id="links" layout="type: line; margin: 0.4" position="0 -1 -2.5">
    <!-- prepare new links for each action -->
    <a-entity id="back" template="src: #link" data-src="" data-thumb="#back" data-action="back"></a-entity>
    <a-entity id="home" template="src: #link" data-src="" data-thumb="#home" data-action="home"></a-entity>
    <a-entity id="forward" template="src: #link" data-src="" data-thumb="#forward" data-action="forward"></a-entity>
  </a-entity>
</a-scene>

我真的不喜欢那些导航图标,因为我不知道如何让它们更有吸引力,所以我想把它们去掉。我想在您单击任意位置(而不仅仅是向前拇指)时注册向前操作


我想知道是否可以在a-scene组件上注册事件单击?我正在尝试,但没有任何运气。

如果您想单击球体并获得单击前进的操作,只需将事件添加到您的a-sky实体中:

set-image="on: click; target: #image-360; action: forward"
应该是这样的:

<a-sky id="image-360" radius="10" src="#pic0" phi-start="275" 
set-image="on: click; target: #image-360; action: forward"
></a-sky>
<a-sky id="image-360" class="link" radius="10" src="#pic0" phi-start="275" 
set-image="on: click; target: #image-360; action: forward"
></a-sky>
它在球体上工作,我认为光线投射器可能有一个长度限制(尽管文档上说它是无限的),请查看以下内容:

更新2
OP希望仅在不拖动图片时执行单击操作。
我认为最简单的方法是设置两个事件侦听器:
1.通过
addEventListener('componentchanged',函数(evt){
如果(evt.detail.name==='rotation'){
}
});而evt.detail.newData是新的轮换,evt.detail.oldData是旧的轮换。

2.在设置的图像中,侦听mousedown和mouseup事件。鼠标按下时存储旧数据.y,然后检查新数据是否等于存储的数据。记住检查newData是否未定义。如果旧数据等于新数据,则向前交换图像

您需要在此处发布显示问题的相关最小标记,而不是指向您的网站的链接,该链接将在明天更改,不会在将来帮助任何人:抱歉。现在我添加了一个我现在如何拥有它的例子。谢谢,但我无法让它工作。若我更改了您建议的内容并删除了具有链接id的实体,那个么它将不起作用。它似乎不会触发单击。代码可以在这里访问。@thecoparyew已更新,适合我,如果您仍然有问题,请在JSFIDLE中告诉我,它看起来真的很酷!我还有一个问题:您认为只有在不拖动图片时才可以执行单击操作吗?@thecoparyew to mirror(inverse)图片给它们一个scale属性,即scale=“-11-1”@thecoparyew您仍然有反转图片的问题吗?如果球体出现问题,可以使用