Zvoľte driver, skladajte ich viac a vedzte presne, čo sa stane, keď sa jeden zastaví alebo nahradí.
timing, spring a decay
timing sleduje krivku počas pevného času duration. spring sa riadi fyzikou a nemá pevnú dĺžku. decay začne s rýchlosťou a spomaľuje.
Rovnaké drivery prijímajú číslo, ValueXY alebo záznam, takže { x, y, opacity } sa môžu pohybovať spolu.
Príprava príkladu…
Parametre pružiny
Použite jednu parametrizáciu. Bez nej dostanete predvolenú pružinu React Native (tension 40, friction 7). velocity pružiny je predvolene rýchlosť dráhy, ktorú prerušuje.
sequence spúšťa jeden po druhom, parallel spolu, stagger spúšťa každý po oneskorení, delay čaká a loop opakuje. Výsledok je opäť controller, takže skladby možno vnárať.
Príprava príkladu…
start, stop a reset
Každý controller má start(callback?), stop() a reset(). Callback dostane { finished }: false, keď bol pohyb zastavený alebo nahradený.
Spustenie nového drivera na tej istej hodnote nahradí bežiaci od aktuálnej polohy. Neskočí sa na žiadny z koncov.
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
Sledovanie inej hodnoty
Živá toValue reštartuje driver zakaždým, keď sa tá hodnota zmení, ako tracking v React Native. follow(target, source) je rovnaké pružinové prepojenie ako pomenovaná funkcia.
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 kľúčové snímky
Easing zodpovedá React Native: linear, quad, cubic, sin, circle, exp, elastic, back, bounce, bezier a pomocníci in, out, inOut. keyframes(value, frames, options) prevedie jednu hodnotu niekoľkými číslami s voliteľnými times a repeat.