একটি driver বাছুন, কয়েকটি জুড়ুন, আর ঠিক জানুন একটি থামলে বা প্রতিস্থাপিত হলে কী হয়।
timing, spring আর decay
timing নির্দিষ্ট duration-এ একটি বক্ররেখা অনুসরণ করে। spring পদার্থবিদ্যা মেনে চলে আর তার নির্দিষ্ট সময়কাল নেই। decay একটি বেগ দিয়ে শুরু করে ধীর হয়।
একই driver সংখ্যা, ValueXY বা রেকর্ড নেয়, তাই { x, y, opacity } একসঙ্গে নড়তে পারে।
উদাহরণ প্রস্তুত হচ্ছে…
স্প্রিংয়ের প্যারামিটার
একটি প্যারামিটার-সেট ব্যবহার করুন। না দিলে React Native-এর ডিফল্ট স্প্রিং পান (tension 40, friction 7)। স্প্রিংয়ের velocity ডিফল্টভাবে যে গতিকে বাধা দেয় তার বেগ।
sequence একটার পর একটা চালায়, parallel একসঙ্গে, stagger প্রতিটি বিলম্বের পরে শুরু করে, delay অপেক্ষা করে আর loop পুনরাবৃত্তি করে। ফলাফল আবার একটি কন্ট্রোলার, তাই সমন্বয় একটার ভেতরে আরেকটা রাখা যায়।
উদাহরণ প্রস্তুত হচ্ছে…
start, stop আর reset
প্রতিটি কন্ট্রোলারে start(callback?), stop() আর reset() আছে। callback { finished } পায়: গতি থামানো বা প্রতিস্থাপিত হলে false।
একই মানে নতুন driver শুরু করলে চলমানটি বর্তমান অবস্থান থেকে প্রতিস্থাপিত হয়। কোনো প্রান্তে লাফ নেই।
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
অন্য মানের পিছু নেওয়া
জীবন্ত toValue সেই মান বদলালেই driver আবার শুরু করে, React Native-এর tracking-এর মতো। follow(target, source) একই স্প্রিং সংযোগ, নামযুক্ত ফাংশন হিসেবে।
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 আর কীফ্রেম
Easing React Native-এর সঙ্গে মেলে: linear, quad, cubic, sin, circle, exp, elastic, back, bounce, bezier আর সহায়ক in, out, inOut। keyframes(value, frames, options) একটি মানকে কয়েকটি সংখ্যার মধ্য দিয়ে চালায়, ঐচ্ছিক times আর repeat-সহ।