Suche…


Einführung

Animationen und Übergänge in A-Frame werden mit dem Element <a-animation> als <a-animation> Element definiert. Das System basiert grob auf der Web-Animations-Spezifikation. A-Frame verwendet intern tween.js.

Bemerkungen

Attribute

Hier finden Sie eine Übersicht über Animationsattribute. Wir werden im Folgenden näher darauf eingehen.

Attribut Beschreibung Standardwert
Attribut Attribut zu animieren. Um ein Komponentenattribut anzugeben, verwenden Sie die Syntax componentName.property (z. B. light.intensity ). Drehung
Start Ereignisname, auf den gewartet werden soll, bevor die Animation beginnt. ''
verzögern Verzögerung (in Millisekunden) oder Name des Ereignisses, auf den gewartet werden soll, bevor die Animation beginnt. 0
Richtung Richtung der Animation (zwischen from und to ). Eine von alternate , alternateReverse , normal , reverse . normal
dur Dauer in (Millisekunden) der Animation. 1000
Lockerung Erleichterungsfunktion der Animation. Es gibt sehr viele zur Auswahl. Leichtigkeit
Ende Ereignisname, auf den gewartet werden soll, bevor die Animation angehalten wird. ''
füllen Bestimmt den Effekt einer Animation, wenn sie nicht gerade aktiv ist. Eins von backwards , both forwards , none . vorwärts
von Startwert Aktueller Wert.
wiederholen Wiederholen Sie die Zählung oder indefinite . 0
zu Endwert Muss angegeben werden Keiner

Start

Das begin Attribut legt fest, wann die Animation abgespielt werden soll.

Dies kann entweder eine Zahl sein , die Millisekunden darstellt, die gewartet werden sollen, oder ein Ereignisname, auf den gewartet werden soll. Wir können beispielsweise eine Animation definieren, die 2 Sekunden wartet, bevor eine Entität skaliert wird.

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

Oder wir können eine Animation definieren, die darauf wartet, dass das übergeordnete Element ein Ereignis mit dem Namen fade auslöst, bevor eine Entität ausgeblendet wird.

<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');

Richtung

Das direction definiert, auf welche Weise zwischen dem Startwert und dem Endwert animiert werden soll.

Wenn wir eine abwechselnde Richtung definieren, wechselt die Animation zwischen den Werten from und to zu einem Jo-Jo. Wechselnde Richtungen wirken sich nur aus, wenn wir die Animation wiederholen.

Wert Beschreibung
wechseln Animieren Sie in geradzahligen Zyklen von from bis to . Bei ungeradzahligen Zyklen Animation von to bis from
Alternate-Reverse Animieren Sie in ungeradzahligen Zyklen von from bis to . Bei geradzahligen Zyklen Animation von to bis from
normal Animieren von from bis to .
umkehren Animieren von to bis from

Lockerung

Das easing definiert die Beschleunigungsfunktion der Animation, die standardmäßig ease . Es gibt zu viele Beschleunigungsfunktionen zum Auflisten, aber wir können sie implizit erklären.

Ein möglicher Wert ist linear . Und die grundlegenden Beschleunigungsfunktionen sind ease , ease-in , ease-out und ease-in-out .

Dann gibt es noch mehr Gruppen von Beschleunigungsfunktionen. Die obigen grundlegenden Beschleunigungsfunktionen stellen jeder Gruppe von Beschleunigungsfunktionen ein Präfix vor. Die Gruppen von Beschleunigungsfunktionen sind cubic , quad , quart , quint , sine , expo , circ , elastic , back und bounce .

Zum Beispiel würde die cubic Gruppe von Beschleunigungsfunktionen aus leicht ease-cubic , ease-cubic , ease-in-cubic ease-out-cubic ease-in-out-cubic .

Füllen

Das fill definiert die Wirkung von Animationen, wenn sie nicht gerade aktiv sind. Stellen Sie sich fill als die Werte vor, die die Animation vor und / oder nach jedem Animationszyklus für die Entität festlegt. Nachfolgend sind die möglichen Werte für die fill und ihre Auswirkungen aufgeführt.

Wert Beschreibung
rückwärts Bevor die Animation beginnt, stellen Sie den Startwert auf das from Wert.
beide Kombinieren Sie die Effekte der Rückwärtsfüllung und der Rückwärtsfüllung.
vorwärts Nachdem die Animation abgeschlossen ist, bleibt der endgültige Wert auf dem to Wert. Die Standardfüllung.
keiner Stellen Sie vor Beginn der Animation den Startwert auf den Anfangswert ein. Setzen Sie den Wert nach Abschluss der Animation auf den Anfangswert zurück.

Wiederholen

Das repeat definiert, wie oft die Animation wiederholt wird. Wir nennen jede Wiederholung der Animation einen Zyklus. Wiederholen kann entweder eine Zahl sein, die bei jedem Animationszyklus heruntergezählt wird, bis 0 erreicht ist, an dem Punkt, an dem die Animation endet, oder wir können die repeat auf indefinite und die Animation wird kontinuierlich repeat , bis die Animation manuell entfernt oder gestoppt wird.


VERANSTALTUNGEN

Das Element <a-animation> gibt einige Ereignisse aus.

Veranstaltungsname Beschreibung
Animationsende Wird gesendet, wenn die Animation beendet ist. Bei Wiederholungen wird ausgegeben, wenn der Wiederholungszähler 0 erreicht. Nicht für unbestimmte Wiederholungen ausgegeben.
Animationsstart Wird sofort gesendet, wenn die Animation abgespielt wird.

Beispielanimationen

Einführungsbeispiel: Um einen 5-Meter-Orbit auf einer Entität um die Y-Achse zu definieren, der 10 Sekunden dauert, können wir die Position verschieben und die Rotation animieren. Diese Animation beginnt mit der anfänglichen Drehung um die Y-Achse von 0 Grad und geht um 360 Grad herum. Es ist mit einer Dauer von 10000 Millisekunden definiert, behält den Endwert in jedem Zyklus der Animation bei und wiederholt Endlosschleifen.

<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>

Animieren verschiedener Arten von Eigenschaften

Das Animationssystem von A-Frame kann verschiedene Arten von Eigenschaften animieren.

vec3 Eigenschaften

A-Frame verfügt über standardmäßige vec3 Komponenten (dh position , rotation und scale ). Diese Komponenten bestehen aus drei Faktoren: X, Y und Z. Wir können drei durch Leerzeichen getrennte Zahlen an die Attribute from und übergeben to genau wie wir sie für eine Entität definieren würden. In diesem Fall geht das Animationssystem davon aus, dass wir einen vec3 Wert animieren.

Wenn Sie beispielsweise eine Entität animieren möchten, die von einer Stelle zur anderen geht, können Sie die position animieren.

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

Boolesche Eigenschaften

A-Frame verfügt über Standardkomponenten, die einen einzigen booleschen Wert akzeptieren. Boolesche Werte können auch "animiert" werden, indem der Boolesche Wert am Ende jedes Animationszyklus umgedreht wird.

Wir können beispielsweise eine Animation definieren, die die Sichtbarkeit einer Entität nach 5 Sekunden deaktiviert.

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

Numerische Eigenschaften

Wir können auch numerische Attribute animieren. Zum Beispiel können wir die Intensität des Lichtprimitivs animieren.

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

Farbeigenschaften

Wir können jede Komponenteneigenschaft mit einem Farbtyp animieren. Zum Beispiel können wir eine Box von weiß nach rot animieren.

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

Komponenteneigenschaften

Wir können eine bestimmte Eigenschaft einer Komponente mit mehreren Eigenschaften animieren. Dazu wählen wir die Komponenteneigenschaft mit der Punktsyntax aus: componentName.propertyName .

Um beispielsweise den oberen Radius eines Kegels zu animieren, können Sie den radiusTop Wert mit geometry.radiusTop auswählen.

<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
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow