Zvolte driver, skládejte jich víc a vězte přesně, co se stane, když se jeden zastaví nebo nahradí.
timing, spring a decay
timing sleduje křivku po pevnou dobu duration. spring se řídí fyzikou a nemá pevnou délku. decay začne s rychlostí a zpomaluje.
Stejné drivery přijímají číslo, ValueXY nebo záznam, takže { x, y, opacity } se mohou pohybovat společně.
Příprava příkladu…
Parametry pružiny
Použijte jednu parametrizaci. Bez ní dostanete výchozí pružinu React Native (tension 40, friction 7). velocity pružiny je ve výchozím stavu rychlost dráhy, kterou přerušuje.
sequence spouští jeden po druhém, parallel společně, stagger spouští každý po zpoždění, delay čeká a loop opakuje. Výsledek je opět controller, takže skladby lze vnořovat.
Příprava příkladu…
start, stop a reset
Každý controller má start(callback?), stop() a reset(). Callback dostane { finished }: false, když byl pohyb zastaven nebo nahrazen.
Spuštění nového driveru na stejné hodnotě nahradí běžící od aktuální polohy. Neskočí se na žádný z konců.
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
Sledování jiné hodnoty
Živá toValue restartuje driver pokaždé, když se ta hodnota změní, jako tracking v React Native. follow(target, source) je stejné pružinové propojení jako pojmenovaná funkce.
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 a klíčové snímky
Easing odpovídá React Native: linear, quad, cubic, sin, circle, exp, elastic, back, bounce, bezier a pomocníci in, out, inOut. keyframes(value, frames, options) provede jednu hodnotu několika čísly s volitelnými times a repeat.