首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用带有shake.js事件的远程端口控件的a帧

使用带有shake.js事件的远程端口控件的a帧
EN

Stack Overflow用户
提问于 2017-11-14 19:23:15
回答 1查看 250关注 0票数 1

我想在我的A帧项目中使用fernandojsg的传送控制,但我想使用它们的方式是与shake.js一起使用,一次抖动使传送线出现,另一次则用于您选择的实际传送。

我看过这些文档,并看到了startEvents和endEvent属性,我想将它们映射到握手事件中.对我来说,这听起来像是我必须创建一个自定义组件来完成这个任务,但是我想先寻求帮助,看看这样做是否可行。

到目前为止,我已经制作了这个(litch.com/ link),但到目前为止它还不起作用(请注意,我还有一些其他库可以使用握手、鼠标切换和类似的事件。)我的计划是根据用户想要移动的方式激活或禁用它们)

代码语言:javascript
复制
    <a-entity id="player" wasd-controls tap-to-walk>
     <a-camera id="eyes" position="-.5 1.5 0" camera="" look-controls="" mouse-cursor="">
      <a-entity id="cursor" cursor="fuse: false;"
        position="0 0 -1"
        geometry="primitive: ring; radiusInner: 0.015; radiusOuter: 0.019"
        material="color: white; shader: flat"
        raycaster="far: 5; interval: 1000; objects: .clickable">
      </a-entity>
      <a-entity id="texto" text="value:Hola;align:center" position="0 -.3 -0.5"></a-entity>
      <a-plane position="0 .7 -1" material="transparent: true;  opacity: 0.5; color: #ffec04; shader:flat;"  scale="1 0.2 1"></a-plane>
    </a-camera>
    <a-entity
    teleport-controls="cameraRig: #player; teleport-origins: #eyes; startEvents:['shake','mousedown']">        </a-entity>
    <a-entity id="step" sound="src: #step1"></a-entity>
  </a-entity>

谢谢..。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-14 19:57:56

是的,您需要一些JS或自定义组件来使shake.js和远程端口控件协同工作,原因有两个:

  1. shake.jswindow上的A帧场景之外发布事件,teleport-controls没有监听
  2. shake.js只发出一种事件类型,您需要区分startEventsendEvents

但这不需要很复杂:

代码语言:javascript
复制
AFRAME.registerComponent('shake-listener', {
  init: function () {
    var targetEl = this.el
    var count = 0
    // you could also initialize the shake instance here
    window.addEventListener('shake', function () {
      if (++count % 2) {
        targetEl.emit('shakestart')
      } else {
        targetEl.emit('shakeend')
      }
    })
  }
})

然后将shake-listener添加到与teleport-controls="startEvents: shakestart; endEvents: shakeend"相同的实体中

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47293715

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档