将动画更改为'在发射事件以触发效果时,js不起作用

时间:2017-02-17 18:52:52

标签: aframe

我试图为这个父相机实体播放短旋转动画。我有以下动画:

<a-animation attribute="rotation" dur="1000" to="0 163.5761975835419 0" fill="forwards" begin="rotateCam"></a-animation>

然后,我尝试将&#39;设置为&#39;在发出rotateCam之前使用属性(使用animation.setAttribute(...)),但它只播放我在HTML中设置的默认旋转。我错过了什么吗?

例如,请参阅此fiddle。 v0.5.0。

感谢您的时间。

1 个答案:

答案 0 :(得分:0)

经过一些研究并在A-Frame Slack上与dirkk0交谈后,很明显他们会采用基于组件的方法。我已经改变了我的代码以应用ngokevin的动画组件,它解决了我的问题! :)

Relevant test (AFrame v0.5.0)

HTML:

<a-scene>
  <a-sphere position="0 1.25 -5" radius="1.25" color="#EF2D5E"></a-sphere>
  <a-box position="-1 0.5 -3" width="1" height="1" depth="1" color="#4CC3D9" animation="property: rotation; dur: 1000; startEvents: rotateBox"></a-box>
  <a-cylinder position="1 0.75 -3" radius="0.5" height="1.5" color="#FFC65D"></a-cylinder>
  <a-plane position="0 0 -4" rotation="-90 0 0" width="4" height="4" color="#7BC8A4"></a-plane>

  <a-sky color="#ECECEC"></a-sky>
</a-scene>

JS:

setTimeout(() => {
  let box = document.querySelector('a-box');

  box.setAttribute('animation', 'to', '0 20 0');
  box.emit('rotateBox');
}, 2000);