Ricerca…


introduzione

Le animazioni e le transizioni in A-Frame vengono definite utilizzando l'elemento <a-animation> come child. Il sistema è basato approssimativamente sulla specifica Web Animations. A-Frame utilizza tween.js internamente.

Osservazioni

attributi

Ecco una panoramica degli attributi dell'animazione. Andremo più in dettaglio qui sotto.

Attributo Descrizione Valore predefinito
attributo Attributo da animare. Per specificare un attributo componente, utilizzare la sintassi componentName.property (ad esempio, light.intensity ). rotazione
inizio Nome dell'evento da attendere prima di iniziare l'animazione. ''
ritardo Ritardo (in millisecondi) o nome dell'evento da attendere prima di iniziare l'animazione. 0
direzione Direzione dell'animazione (tra from e to ). Uno di alternate , alternateReverse reverse , normal , reverse . normale
dur Durata in (millisecondi) dell'animazione. 1000
facilitando Funzione di alleggerimento dell'animazione. Ce ne sono molti tra cui scegliere. alleviare
fine Nome dell'evento da attendere prima di interrompere l'animazione. ''
riempire Determina l'effetto dell'animazione quando non è attivo nel gioco. Uno a backwards , both , forwards , none . in avanti
a partire dal Valore iniziale Valore corrente.
ripetere Ripeti il ​​conteggio o indefinite . 0
a Valore finale Deve essere specificato Nessuna

Inizio

L'attributo begin definisce quando deve iniziare l'animazione.

Questo può essere un numero , che rappresenta millisecondi, o un nome di evento da attendere. Ad esempio, possiamo definire un'animazione che aspetta 2 secondi prima di ridimensionare un'entità.

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

Oppure possiamo definire un'animazione che aspetta che l'elemento genitore inneschi un evento chiamato fade prima di dissolvere un'entità.

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

Direzione

L'attributo direction definisce il modo in cui animare tra il valore iniziale e il valore finale.

Quando definiamo una direzione alternata, l'animazione andrà avanti e indietro tra i valori from e to come yo-yo. Le direzioni alternate hanno effetto solo quando ripetiamo l'animazione.

Valore Descrizione
alternato Nei cicli pari, animato da from a to . Su cicli dispari, animazione da to a from
alternate-reverse Nei cicli dispari, animare da from a to . Su cicli pari, animazione da to a from
normale Animate da from a to .
inverso Anima da to a from .

Facilitare

L' easing attributo definisce la funzione di andamento dell'animazione che imposta ease . Ci sono troppe funzioni di andamento da elencare, ma possiamo implicitamente spiegarle.

Un possibile valore è linear . E le funzioni base di easing sono ease , ease-in , ease-out e ease-in-out .

Quindi ci sono più gruppi di funzioni di andamento. Le funzioni di base di allentamento precedono ogni gruppo di funzioni di andamento. I gruppi di funzioni di easing sono cubic , quad , quart , quint , sine , expo , circ , elastic , back e bounce .

Ad esempio, il gruppo cubic di funzioni di alleggerimento consisterebbe in una ease-cubic , ease-in-cubic , ease-out-cubic , ease-in-out-cubic .

Riempire

L'attributo fill definisce l'effetto dell'animazione quando non è attivo in gioco. Pensa a fill come ciò che valuta i set di animazione sull'entità prima e / o dopo ogni ciclo di animazione. Di seguito sono riportati i valori possibili per il fill e i relativi effetti.

Valore Descrizione
indietro Prima che l'animazione inizi, imposta il valore iniziale sul valore from .
tutti e due Combina gli effetti sia del fill backward che del fill forward.
in avanti Al termine dell'animazione, il valore finale rimarrà al to valore. Il riempimento predefinito.
nessuna Prima che l'animazione abbia inizio, imposta il valore iniziale sul valore iniziale. Al termine dell'animazione, reimposta il valore sul valore iniziale.

Ripetere

L'attributo repeat definisce la frequenza di ripetizione dell'animazione. Chiamiamo ogni ripetizione dell'animazione a ciclo. La ripetizione può essere un numero che esegue il conto alla rovescia su ciascun ciclo di animazione finché non raggiunge 0 a quel punto l'animazione termina, oppure è possibile impostare la repeat a indefinite e l'animazione si interrompe continuamente finché l'animazione non viene rimossa o interrotta manualmente.


EVENTI

L'elemento <a-animation> emette un paio di eventi.

Nome dell'evento Descrizione
animationend Emesso quando termina l'animazione. In caso di ripetizioni, emesse quando il conteggio delle ripetizioni raggiunge 0 . Non emesso per ripetizioni indefinite.
animationstart Emesso immediatamente quando inizia l'animazione.

Animazioni di esempio

Come esempio introduttivo, per definire un'orbita di 5 metri su un'entità attorno all'asse Y che impiega 10 secondi, possiamo spostare la posizione e animare la rotazione. Questa animazione inizia con la rotazione iniziale attorno all'asse Y di 0 gradi e gira intorno a 360 gradi. È definito con una durata di 10000 millisecondi, mantiene il valore finale su ogni ciclo dell'animazione e si estende all'infinito.

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

Animare diversi tipi di proprietà

Il sistema di animazione di A-Frame può animare diversi tipi di proprietà.

Proprietà vec3

A-Frame ha componenti standard vec3 (cioè position , rotation e scale ). Questi componenti sono costituiti da tre fattori: X, Y e Z. Possiamo passare tre numeri delimitati da spazi to attributi from e to così come li definiremmo su un'entità. In questo caso, il sistema di animazione supporrà che stiamo animando un valore vec3 .

Ad esempio, se vogliamo animare un'entità che va da un punto all'altro, possiamo animare il componente di position .

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

Proprietà booleane

A-Frame ha componenti standard che accettano un singolo valore booleano. I valori booleani possono anche essere "animati" ribaltando il valore booleano alla fine di ogni ciclo di animazione.

Ad esempio, possiamo definire un'animazione che alterna la visibilità di un'entità dopo 5 secondi.

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

Proprietà numeriche

Possiamo anche animare gli attributi numerici. Ad esempio, possiamo animare l'intensità della luce primitiva.

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

Proprietà del colore

Possiamo animare qualsiasi proprietà del componente che ha un tipo di colore. Ad esempio, possiamo animare una casella dal bianco al rosso.

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

Proprietà del componente

Possiamo animare una certa proprietà di un componente multi-proprietà. Per fare ciò, selezioniamo la proprietà del componente usando la sintassi del punto: componentName.propertyName .

Ad esempio, per animare il raggio superiore del cono, possiamo selezionare il valore radiusTop con 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
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow