意外时,框架光标保险丝工作

时间:2019-10-31 07:23:49

标签: cursor aframe

保险丝光标的异常行为。我为光标mainscene和a光标都设置了保险丝false,但是保险丝仍然显示在悬停上。

在ios,android上进行测试时,此问题不断出现。从桌面浏览器工作正常。

<a-camera id="default_angle" camera  position="0 0 0" look-controls  wasd-controls>
<a-cursor>
 <!-- by default click should be not expected on hover object (fuse) -->
</a-cursor>
</a-camera>
...
<a-box id="motor" color="red" position="0 0 -5"></a-box>
<!-- on hover to this object from mobile fuse should not appear -->
...
  var motor = document.querySelector('#motor');
  motor.addEventListener('click', function (evt) {
   alert('clicked');  
  });

请签出此密码笔 https://codepen.io/sevenspring/pen/XWWzNvK

这里可能会想到,将光标悬停在对象上时,触摸产生的点击(在移动屏幕上点击)。

,但是您可以使用陀螺仪检查该示例。 https://parent.glitch.me 在vr模式下,我们可以通过陀螺仪移动将光标悬停在“播放/暂停”按钮上,但仍会产生点击。 https://glitch.com/edit/#!/join/d1afa869-dea2-47ec-9904-e851e451d832

2 个答案:

答案 0 :(得分:1)

来自Dan S.的回答是正确的。 当我们使用不带“ cursor”属性的属性时,不会触发融合事件,因为默认情况下会如此

答案 1 :(得分:0)

这里实际上有很多问题。

一个问题是CodePen演示正在使用<a-cursor fuse="false" cursor></a-cursor>。这实际上是两个游标,因为您正在通过cursor添加第二个游标作为未配置的组件。

另一个问题是,cursor如果未明确设置为cursor="fuse: false;",则会默认在移动设备上融合

另一个问题是您正在监听click事件,该事件将鼠标悬停在实体上时捕获鼠标的点击。

我相信fuse旨在允许click无需点击,但也允许用户在有能力的情况下点击。

如果您要测试什么时候独占融合,则可能要尝试监听fusing事件而不是click

<a-cursor fuse="false"><a-cursor>

<a-entity cursor="fuse: false;">
  <!-- you will need to provide your own cursor geometry -->
<a-entity>

然后听fusing

this.el.addEventListener('fusing', function (e) {
 console.log(e);
});

我希望这会有所帮助。