Alegeți un driver, combinați mai multe și știți exact ce se întâmplă când unul se oprește sau e înlocuit.
timing, spring și decay
timing urmează o curbă pe un duration fix. spring urmează fizica și nu are durată fixă. decay pornește cu o viteză și încetinește.
Aceleași drivere acceptă un număr, un ValueXY sau o înregistrare, așa că { x, y, opacity } se pot mișca împreună.
Se pregătește exemplul…
Parametrii arcului
Folosiți un singur set de parametri. Fără el primiți arcul implicit din React Native (tension 40, friction 7). velocity al unui arc este implicit viteza mișcării pe care o întrerupe.
sequence rulează unul după altul, parallel împreună, stagger pornește fiecare după o întârziere, delay așteaptă, iar loop repetă. Rezultatul este tot un controler, așa că compozițiile se pot imbrica.
Se pregătește exemplul…
start, stop și reset
Fiecare controler are start(callback?), stop() și reset(). Callback-ul primește { finished }: false când mișcarea a fost oprită sau înlocuită.
Pornirea unui driver nou pe aceeași valoare îl înlocuiește pe cel în curs de la poziția curentă. Nu există salt la vreun capăt.
controller.js
const move = timing(value, { toValue: 1, duration: 600 });
move.start(({ finished }) => {
// finished is false when stopped or replaced by a new animation
});
move.stop(); // keeps the value where it is on screen
move.reset(); // returns to where this animation started
Urmărirea altei valori
Un toValue viu repornește driverul de fiecare dată când acea valoare se schimbă, ca tracking-ul din React Native. follow(target, source) este aceeași legătură cu arc, sub forma unei funcții cu nume.
tracking.js
// A live toValue tracks another value, like React Native tracking.spring(badge, { toValue: pointer, stiffness: 300, damping: 26 }).start();
// follow() is the same connection as a named function.follow(badge, pointer, { stiffness: 300, damping: 26 });
Easing și keyframe-uri
Easing corespunde celui din React Native: linear, quad, cubic, sin, circle, exp, elastic, back, bounce, bezier și ajutoarele in, out, inOut. keyframes(value, frames, options) trece o valoare prin mai multe numere, cu times și repeat opționale.