在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
答案 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);
});
我希望这会有所帮助。