Screen:swipe()
إجراء سحب بإصبع واحد على الشاشة. يُحدد مسار السحب بقائمة من قيم SwipePoint التي يتحرك الإصبع عبرها بالتسلسل.
التوقيع
Screen:swipe(swipePoints: List<SwipePoint>, params?: SwipeParams): void
القيمة المعادة
void
المعاملات
| المعامل | النوع | الوصف |
|---|---|---|
| swipePoints | List<SwipePoint> | قائمة من النقاط التي يتحرك الإصبع عبرها. الحد الأدنى نقطتان. |
| params | SwipeParams | اختياري. يتحكم في سلوك السحب مثل الوضع المستمر والتأخير. |
سلوك SwipePoint
كل نقطة في القائمة هي SwipePoint(x, y, holdDuration, swipeDuration). ويختلف المعنى حسب موضع النقطة:
النقطة الأولى (موضع البداية):
swipeDuration— التأخير الابتدائي بالمللي ثانية قبل أن يلمس الإصبع الشاشةholdDuration— المدة التي يُمسك فيها عند موضع البداية قبل التحرك إلى النقطة التالية
النقاط اللاحقة (أهداف التحريك):
swipeDuration— المدة بالمللي ثانية للانتقال من النقطة السابقة إلى هذه النقطةholdDuration— المدة التي يُمسك فيها عند هذه النقطة بعد الوصول (وقفة قبل التحرك التالي)
النقطة الأخيرة:
holdDuration— إمساك نهائي عند الموضع الأخير قبل أن يُرفع الإصبع
أمثلة
سحب بسيط
Screen:swipe({
SwipePoint(500, 1200, 50, 0),
SwipePoint(500, 400, 50, 1000),
})
يلمس الإصبع الشاشة عند (500, 1200) فورًا، ويمسك لمدة 50ms، ثم يسحب لأعلى إلى (500, 400) خلال ثانية واحدة.
سحب مع تأخير ابتدائي
Screen:swipe({
SwipePoint(300, 800, 50, 2000),
SwipePoint(700, 800, 50, 1500),
})
ينتظر ثانيتين، ثم يلمس الشاشة عند (300, 800)، ويمسك لمدة 50ms، ويسحب نحو اليمين إلى (700, 800) خلال 1.5 ثانية.
سحب متعدد النقاط مع إمساك
Screen:swipe({
SwipePoint(100, 500, 50, 0),
SwipePoint(400, 500, 3000, 1000),
SwipePoint(400, 900, 50, 1000),
})
الخط الزمني:
| الوقت | الإجراء |
|---|---|
| 0ms | ضغط عند (100, 500) |
| 50ms | بدء التحرك إلى (400, 500) |
| 1050ms | الوصول إلى (400, 500)، إمساك 3000ms |
| 4050ms | بدء التحرك إلى (400, 900) |
| 5050ms | الوصول إلى (400, 900)، إمساك 50ms |
| 5100ms | رفع الإصبع |
يسحب الإصبع نحو اليمين، ويتوقف لمدة 3 ثوانٍ، ثم يسحب نحو الأسفل.
سحب مستمر مع SwipeParams
Screen:swipe({
SwipePoint(200, 600, 50, 0),
SwipePoint(500, 300, 50, 2000),
}, SwipeParams():setContinue(true))
عند ضبط setContinue(true)، لا يُرفع الإصبع بين نقاط السحب. يتيح ذلك إيماءات مستمرة سلسة على Android 8.1+ مع خدمة إمكانية الوصول. أما على الخدمة الأصلية، فالسحب دائمًا مستمر بغض النظر عن هذا الإعداد.
سحب بطيء
Screen:swipe({
SwipePoint(540, 1800, 100, 0),
SwipePoint(540, 600, 50, 5000),
})
يلمس الشاشة عند (540, 1800)، ويمسك لمدة 100ms، ثم يسحب ببطء لأعلى إلى (540, 600) خلال 5 ثوانٍ.