الأدلة · 02

Timing والنوابض والتركيب

اختر مشغّلًا، وركّب عدة مشغّلات، واعرف بدقة ما يحدث حين يُوقَف أحدها أو يُستبدل.

timing وspring وdecay

يتبع timing منحنى لمدة duration ثابتة. ويتبع spring الفيزياء وليس له طول ثابت. ويبدأ decay بسرعة ثم يتباطأ.

تقبل المشغّلات نفسها رقمًا أو ValueXY أو سجلًا، فيمكن لـ { x, y, opacity } أن تتحرك معًا.

جارٍ تجهيز المثال…

معاملات النابض

استخدم مجموعة معاملات واحدة. ومن دونها تحصل على نابض React Native الافتراضي (tension 40، friction 7). وقيمة velocity للنابض افتراضيًا هي سرعة المسار الذي يقاطعه.

springs.js
spring(value, { toValue: 1 }); // React Native default
spring(value, { toValue: 1, stiffness: 260, damping: 20 }); // physical
spring(value, { toValue: 1, bounciness: 8, speed: 12 }); // React Native style
spring(value, { toValue: 1, tension: 40, friction: 7 }); // origami style

التركيب

يشغّل sequence واحدًا تلو الآخر، وparallel معًا، وstagger يبدأ كلًا منها بعد تأخير، وdelay ينتظر، وloop يكرّر. والنتيجة متحكم مجددًا، فتتداخل التراكيب.

جارٍ تجهيز المثال…

start وstop وreset

لكل متحكم start(callback?) وstop() وreset(). يتلقى الاستدعاء الراجع { finished }: وقيمته false حين تُوقَف الحركة أو تُستبدل.

بدء مشغّل جديد على القيمة نفسها يستبدل الجاري من الموضع الحالي. لا قفز إلى أيٍّ من الطرفين.

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 الحية تعيد تشغيل المشغّل كلما تغيّرت تلك القيمة، مثل التتبّع في React Native. و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 اختياريين.

بحث

اكتب للبحث في التوثيق.