Einen Driver wählen, mehrere kombinieren und genau wissen, was passiert, wenn einer gestoppt oder ersetzt wird.
timing, spring und decay
timing folgt einer Kurve über eine feste duration. spring folgt der Physik und hat keine feste Dauer. decay startet mit einer Geschwindigkeit und bremst ab.
Dieselben Driver akzeptieren eine Zahl, einen ValueXY oder einen Record, sodass { x, y, opacity } sich gemeinsam bewegen können.
Beispiel wird vorbereitet…
Federparameter
Nutze genau eine Parametrisierung. Ohne Angabe bekommst du die Standardfeder von React Native (tension 40, friction 7). Die velocity einer Feder übernimmt standardmäßig die Geschwindigkeit der Bahn, die sie unterbricht.
sequence läuft nacheinander, parallel gleichzeitig, stagger startet jedes nach einer Verzögerung, delay wartet und loop wiederholt. Das Ergebnis ist wieder ein Controller, also lassen sich Kompositionen verschachteln.
Beispiel wird vorbereitet…
start, stop und reset
Jeder Controller hat start(callback?), stop() und reset(). Der Callback erhält { finished }: false, wenn die Bewegung gestoppt oder ersetzt wurde.
Ein neuer Driver auf demselben Wert ersetzt den laufenden ab der aktuellen Position. Es gibt keinen Sprung an eines der Enden.
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
Einem anderen Wert folgen
Ein lebendiger toValue startet den Driver neu, sobald sich dieser Wert ändert – wie Tracking in React Native. follow(target, source) ist dieselbe Federverbindung als benannte Funktion.
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 und Keyframes
Easing entspricht React Native: linear, quad, cubic, sin, circle, exp, elastic, back, bounce, bezier sowie die Helfer in, out und inOut. keyframes(value, frames, options) führt einen Wert durch mehrere Zahlen, mit optionalen times und repeat.