动画不同类型的属性

A-Frame 的动画系统可以为不同类型的属性设置动画。

vec3 属性

A-Frame 具有标准的 vec3 组件(即 positionrotationscale)。这些组件由三个因素组成:X,Y 和 Z.我们可以将三个以空格分隔的数字传递给 fromto 属性,就像我们在实体上定义它们一样。在这种情况下,动画系统将假设我们正在为 vec3 值设置动画。

例如,如果我们想要为从一个点到另一个点的实体设置动画,我们可以为 position 组件设置动画。

<a-entity>
  <a-animation attribute="position" from="1 1 1" to="2 4 -8"></a-animation>
</a-entity>

布尔属性

A-Frame 具有接受单个布尔值的标准组件。布尔值也可以通过在每个动画周期结束时翻转布尔值来动画化

例如,我们可以定义一个动画,在 5 秒后切换实体的可见性。

<a-entity>
  <a-animation attribute="visible" dur="5000" to="false" repeat="indefinite"></a-animation>
</a-entity>

数字属性

我们也可以为数字属性设置动画。例如,我们可以设置光基元的强度动画。

<a-light intensity="1">
  <a-animation attribute="intensity" to="3"></a-animation>
</a-light>

颜色属性

我们可以为任何具有颜色类型的组件属性设置动画。例如,我们可以将一个框从白色设置为红色。

<a-entity id="blushing-cube" geometry="primitive: box">
  <a-animation attribute="material.color" from="white" to="red" dur="1000"></a-animation>
</a-entity>

组件属性

我们可以为多属性组件的某个属性设置动画。为此,我们使用点语法选择组件属性:componentName.propertyName

例如,要为圆锥的顶部半径设置动画,我们可以使用 geometry.radiusTop 选择 radiusTop 值。

<a-entity geometry="primitive: cone; radiusTop: 1">
  <a-animation attribute="geometry.radiusTop" to="0.5"></a-animation>
</a-entity>