2016-11-16 62 views
0

我想要获取动画以将摄像头从当前位置移动到从单击元素传递的位置。这个问题似乎是用于将'到'位置传递给动画的正确语法。这是我的。作为第二个参数传递数据的A帧位置动画

<a-entity id="cam-position" position="0 0 1.2" rotation="-0 0 0"> 
     <a-camera look-controls wasd-controls> 
      <a-entity visible="true" cursor="fuse: true; fuse-timeout: 500" 
       position="0 0 -1" 
       scale="0.01 0.01 0.01" 
       geometry="primitive: sphere" 
       material="color: #6AD7FF; shader: standard"> 
       <a-animation begin="click" 
        easing="ease-in" 
        attribute="scale" 
        dur="2000" 
        fill="backwards" 
        from="0.01 0.01 0.01" to="0.04 0.04 0.04"> 
       </a-animation> 
       <a-animation begin="fusing" 
        easing="ease-in" 
        attribute="scale" 
        fill="forwards" 
        from="1 1 1" to="0.1 0.1 0.1" > 
       </a-animation> 
      </a-entity> 
     </a-camera> 
     <a-animation begin="move" 
        attribute="position" 
        dur="2000" 
        from="0 0 1.2" 
        > 
       </a-animation> 
     </a-entity> 

document.querySelector('#cam-position').emit('move',{'to': { x: 0, y: 0, z: -88 } }); 

它工作正常,没有第二个参数和在a动画中指定'to'。有任何想法吗?谢谢

回答

0

当您发出move时,第二个参数是事件详细信息。动画确实有一个功能,可以在事件触发器上启动动画,但它不会查看事件详细信息。

你需要做一个animation.setAttribute('to', {...})而不是试图让事件处理所有事情,因为这不是一个功能。

document.querySelector('a-animation[begin="move"]').setAttribute('to', '0 0 -88'); 
document.querySelector('#cam-position').emit('move') 
+0

动画还没有发生。位置attr更改为“0 0 -88”,但动画默认为旧属性。控制台日志显示它已更改。相机实体是否需要更新以反映新的“到”位置还是缺少其他东西? –

+0

你也可以试试这个API:https://ngokevin.github.io/kframe/components/animation/ – ngokevin

+0

与kframe /动画一样。 –