Szukaj…


Wprowadzenie

Animacje i przejścia w ramce A są definiowane przy użyciu elementu <a-animation> jako dziecka. System oparty jest w przybliżeniu na specyfikacji Web Animations. A-Frame używa tween.js wewnętrznie.

Uwagi

Atrybuty

Oto przegląd atrybutów animacji. Bardziej szczegółowo omówimy poniżej.

Atrybut Opis Domyślna wartość
atrybut Atrybut animacji. Aby określić atrybut komponentu, użyj składni componentName.property (np. light.intensity ). obrót
zaczynać Nazwa zdarzenia, na które należy czekać przed rozpoczęciem animacji. ''
opóźnienie Opóźnienie (w milisekundach) lub nazwa zdarzenia, na które należy czekać przed rozpoczęciem animacji. 0
kierunek Kierunek animacji (między from i to ). Jeden z alternate , alternateReverse reverse , normal , reverse . normalna
dur Czas trwania (w milisekundach) animacji. 1000
łagodzenie Funkcja łagodzenia animacji. Jest bardzo wiele do wyboru. łatwość
koniec Nazwa zdarzenia, na które należy czekać przed zatrzymaniem animacji. ''
napełnić Określa efekt animacji, gdy nie jest aktywnie w grze. Jeden z backwards , both , forwards , none . do przodu
od Wartość początkowa. Aktualna wartość.
powtarzać Powtórz liczenie lub na indefinite . 0
do Wartość końcowa. Musisz podać Żaden

Zaczynać

Atrybut begin określa, kiedy animacja powinna się rozpocząć.

Może to być liczba reprezentująca milisekundy oczekiwania lub nazwa zdarzenia, na które należy czekać. Na przykład możemy zdefiniować animację, która czeka 2 sekundy przed skalowaniem encji.

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

Lub możemy zdefiniować animację, która czeka, aż element nadrzędny wyzwoli zdarzenie o nazwie fade zanim zniknie element.

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

Kierunek

Atrybut direction określa sposób animacji między wartością początkową a wartością końcową.

Kiedy zdefiniujemy kierunek naprzemienny, animacja będzie się przesuwać w przód iw tył między wartościami from i to wartości takich jak jo-jo. Naprzemienne kierunki działają tylko wtedy, gdy powtórzymy animację.

Wartość Opis
alternatywny Na parzystych cykli, ożywione od from do to . W cyklach nieparzystych animacja od to do from
Alternate-Reverse Na cyklach nieparzystych, ożywione od from do to . W przypadku cykli parzystych animacja od to do from
normalna Animacja od from do to .
rewers Animuj od to do from .

Łagodzenie

Atrybut easing definiuje funkcję łagodzenia animacji, która domyślnie jest ease . Istnieje zbyt wiele funkcji łagodzenia, aby je wymienić, ale możemy je domyślnie wyjaśnić.

Jedna możliwa wartość jest linear . Podstawowymi funkcjami ułatwiającymi są ease , ease-in , ease-out i ease-in-out .

Następnie jest więcej grup funkcji łagodzenia. Powyższe podstawowe funkcje łagodzenia poprzedzają każdą grupę funkcji łagodzenia. Grupy funkcji łagodzących to: cubic , quad , quart , quint , sine , expo , circ , elastic , back i bounce .

Na przykład, cubic grupa funkcji złagodzenie obejmowałaby ease-cubic , ease-in-cubic , ease-out-cubic , ease-in-out-cubic .

Napełnić

Atrybut fill określa efekt animacji, gdy nie jest aktywnie w grze. Pomyśl o fill jako o wartościach, jakie animacja ustawia na obiekcie przed i / lub po każdym cyklu animacji. Poniżej znajdują się możliwe wartości fill i ich efekty.

Wartość Opis
wstecz Przed rozpoczęciem animacji ustaw wartość początkową na wartość from .
obie Połącz efekty wypełniania zarówno do tyłu, jak i do przodu.
do przodu Po zakończeniu animacji końcowa wartość pozostanie na wartości to . Domyślne wypełnienie.
Żaden Przed rozpoczęciem animacji ustaw wartość początkową na wartość początkową. Po zakończeniu animacji zresetuj wartość do wartości początkowej.

Powtarzać

Atrybut repeat określa częstotliwość powtarzania animacji. Każde powtórzenie animacji nazywamy cyklem. Powtarzanie może być liczbą, która odlicza się w każdym cyklu animacji, aż osiągnie 0 w którym momencie zakończy się animacja, lub możemy ustawić repeat na indefinite a animacja będzie się repeat aż animacja zostanie ręcznie usunięta lub zatrzymana.


WYDARZENIA

Element <a-animation> emituje kilka zdarzeń.

Nazwa wydarzenia Opis
animacja Emitowane po zakończeniu animacji. W przypadku powtórzeń, emitowane, gdy liczba powtórzeń osiągnie 0 . Nie emitowane dla powtórzeń na czas nieokreślony.
animacja Emitowane natychmiast po rozpoczęciu odtwarzania animacji.

Przykładowe animacje

Jako przykład wprowadzający, aby zdefiniować 5-metrową orbitę na elemencie wokół osi Y, która zajmuje 10 sekund, możemy przesunąć pozycję i animować obrót. Ta animacja rozpoczyna się od początkowego obrotu wokół osi Y wynoszącego 0 stopni i osiąga około 360 stopni. Jest on definiowany na czas trwania 10000 milisekund, utrzymuje końcową wartość w każdym cyklu animacji i zapętla się w nieskończoność.

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

Animowanie różnych rodzajów właściwości

System animacji A-Frame może animować różne typy właściwości.

Właściwości vec3

Rama A ma standardowe komponenty vec3 (tj. position , rotation i scale ). Elementy te składają się z trzech czynników: X, Y i Z. Możemy przekazać trzy spacjami liczb do from oraz to atrybutów, tak jak my je zdefiniować na jednostki. W takim przypadku system animacji przyjmie, że vec3 wartość vec3 .

Na przykład, jeśli chcemy animować byt przechodzący z jednego miejsca do drugiego, możemy animować komponent position .

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

Właściwości boolowskie

Rama A ma standardowe komponenty, które akceptują jedną wartość logiczną. Wartości boolowskie można również „animować”, odwracając wartość logiczną na końcu każdego cyklu animacji.

Na przykład możemy zdefiniować animację, która wyłącza widoczność bytu po 5 sekundach.

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

Właściwości numeryczne

Możemy także animować atrybuty numeryczne. Na przykład możemy animować intensywność prymitywów światła.

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

Właściwości koloru

Możemy animować dowolną właściwość komponentu, która ma typ koloru. Na przykład możemy animować pole od białego do czerwonego.

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

Właściwości komponentu

Możemy animować określoną właściwość komponentu zawierającego wiele nieruchomości. W tym celu wybieramy właściwość komponentu za pomocą składni kropkowej: componentName.propertyName .

Na przykład, aby animować górny promień stożka, możemy wybrać wartość radiusTop pomocą 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
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow