Поиск…


Вступление

Анимация и переходы в A-Frame определяются с помощью элемента <a-animation> в качестве дочернего элемента. Система примерно основана на спецификации Web Animations. A-Frame использует tween.js внутри.

замечания

Атрибуты

Ниже приведен обзор атрибутов анимации. Ниже мы рассмотрим более подробно.

атрибут Описание Значение по умолчанию
атрибут Атрибут для анимации. Чтобы указать атрибут компонента, используйте синтаксис componentName.property (например, light.intensity ). вращение
начать Имя события для ожидания перед началом анимации. «»
задержка Задержка (в миллисекундах) или имя события для ожидания перед началом анимации. 0
направление Направление анимации (между from и to ). Один из alternate , alternateReverse , normal , reverse . нормальный
дур Продолжительность в (миллисекундах) анимации. 1000
ослабление Ослабляющая функция анимации. Их очень много. легкость
конец Имя события для ожидания перед остановкой анимации. «»
заполнить Определяет эффект анимации, когда он не активен в игре. Один backwards , both , forwards , none . вперед
от Начальное значение. Текущая стоимость.
повторение Повторите подсчет или indefinite . 0
в Конечное значение. Должен быть указан. Никто

Начать

Атрибут begin определяет, когда анимация должна начинаться.

Это может быть либо число , представляющее миллисекунды ожидания, либо имя события, которое нужно ждать. Например, мы можем определить анимацию, ожидающую за 2 секунды до масштабирования объекта.

<a-entity>
  <a-animation attribute="scale" begin="2000" to="2 2 2"></a-animation>
</a-entity>

Или мы можем определить анимацию, которая ожидает, чтобы родительский элемент инициировал событие с именем fade перед тем, как fade объект.

<a-entity id="fading-cube" geometry="primitive: box" material="opacity: 1">
  <a-animation attribute="material.opacity" begin="fade" to="0"></a-animation>
</a-entity>
// Trigger an event to begin fading.
document.querySelector('#fading-cube').emit('fade');

направление

Атрибут direction определяет, какой способ для анимации между начальным значением и конечным значением.

Когда мы определяем переменное направление, анимация будет идти туда и обратно между значениями from и to такими как yo-yo. Альтернативные направления влияют только на повторение анимации.

Значение Описание
чередовать На четных циклов, анимировать от from до to . В циклах с нечетным номером анимация от to и from
Альтернативный-обратный О циклах с нечетными номерами, анимированных от from до to . На четных циклах анимация от to и from
нормальный Анимация из from to .
задний ход Анимации от to до from .

смягчение

Атрибут easing определяет функцию ослабления анимации, которая по умолчанию ease . Слишком много облегчающих функций для перечисления, но мы можем косвенно объяснить их.

Одно возможное значение является linear . И основные функции ослабления - это ease , ease-in , ease-out и ease-in-out .

Тогда есть еще несколько групп ослабляющих функций. Вышеупомянутые базовые функции ослабления префикс каждой группы ослабляющих функций. Группы ослабляющих функций - это cubic , quad , quart , quint , sine , expo , circ , elastic , back и bounce .

Например, cubic группа ослабляющих функций будет состоять из ease-cubic , ease-in-cubic , ease-out-cubic , ease-in-out-cubic .

заполнить

Атрибут fill определяет эффект анимации, когда он не активен в игре. Подумайте, как fill какие значения анимации устанавливаются на сущности до и / или после каждого цикла анимации. Ниже приведены возможные значения fill и их эффектов.

Значение Описание
назад Перед началом анимации установите начальное значение в значение from .
и то и другое Объедините эффекты как заполнения, так и переполнения вперед.
вперед После анимации отделки, окончательное значение будет оставаться на , to значение. Заполнение по умолчанию.
никто Перед началом анимации установите начальное значение на начальное значение. После окончания анимации сбросьте значение до начального значения.

Повторение

Атрибут repeat определяет, как часто повторяется анимация. Каждый повтор анимации мы называем циклом. Повторение может быть либо числом, которое отсчитывает каждый цикл анимации до тех пор, пока не достигнет 0 после которого анимация закончится, или мы можем установить repeat на indefinite и анимация будет циклически работать до тех пор, пока анимация не будет вручную удалена или остановлена.


СОБЫТИЯ

Элемент <a-animation> выделяет несколько событий.

Название события Описание
animationend Выпускается, когда анимация заканчивается. В случае повторов испускается, когда количество повторений достигает 0 . Не испускается для неопределенных повторов.
animationstart Выпускается сразу после начала анимации.

Пример анимации

В качестве вводного примера, чтобы определить 5-метровую орбиту на объекте вокруг оси Y, которая занимает 10 секунд, мы можем компенсировать положение и оживить вращение. Эта анимация начинается с начального вращения вокруг оси Y в 0 градусов и приближается к 360 градусам. Он определяется длительностью 10000 миллисекунд, поддерживает окончательное значение для каждого цикла анимации и бесконечно циклически.

<a-entity position="5 0 0" rotation="0 0 0">
  <a-animation attribute="rotation"
               to="0 360 0"
               dur="10000"
               fill="forwards"
               repeat="indefinite"></a-animation>
</a-entity>

Анимация различных типов свойств

Система анимации A-Frame может анимировать различные типы свойств.

Свойства vec3

A-Frame имеет стандартные компоненты vec3 (т. vec3 position , rotation и scale ). Эти компоненты состоят из трех факторов: X, Y и Z. Мы можем передавать три числа с разделителями в области from и to атрибутов так же, как мы определяли бы их на сущности. В этом случае система анимации предположит, что мы анимируем значение 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 .

Например, чтобы оживить верхний радиус конуса, мы можем выбрать значение radiusTop с помощью geometry.radiusTop .

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


Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow