# تعامل مع الإلغاء كمسار إدخال كامل

> قم بإنهاء عمليات السحب وإيقاف الإجراءات بأمان عندما يلغي المتصفح المؤشر، وتجنب توقف عناصر التحكم بعد التمرير أو التدوير أو المقاطعة.

- URL: https://oneshotgems.ai/ar/topics/pointer-cancellation-in-games
- الفئة: لمطوري الألعاب
- النوع: دليل
- آخر تحديث: 5 أكتوبر 2026

لا ينتهي تفاعل المؤشر دائماً بحدث pointerup. قد يلغي المتصفح التفاعل عندما تتحول اللمسة إلى تمرير الصفحة أو تكبيرها، أو عندما يتعذر على الجهاز أو المتصفح مواصلة إرسال أحداث ذلك المؤشر. إذا لم تعالج آلة حالات اللعبة الإلغاء، فقد يظل الكائن المسحوب عالقاً أو يستمر الإجراء المضغوط من دون توقف.

## اجعل عملية التنظيف متماثلة الأثر عند تكرارها

عندما يبدأ pointerdown عملية سحب، قم بتخزين pointerId النشط والكائن أو الإجراء الذي يمتلكه. يجب على كل من pointerup وpointercancel إنهاء هذا التفاعل ومسح حالته. اكتب دالة التنظيف بحيث يكون استدعاؤها بعد انتهاء العملية آمنًا ولا يسبب آثارًا جانبية؛ يؤدي هذا إلى تبسيط التعامل مع فقدان الالتقاط وتغييرات النوافذ والتنظيف الدفاعي المتكرر.

في حالة استخدام التقاط المؤشر، استمع إلى lostpointercapture كإشارة أخرى إلى أن التفاعل لم يعد يمتلك المؤشر. لا تفسر الإلغاء على أنه إفلات ناجح ما لم تحدد اللعبة هذه النتيجة صراحةً. قد يؤدي السحب الملغى إلى إرجاع كائن إلى موضع البداية أو الاحتفاظ بآخر موضع صالح أو إلغاء الحركة؛ اختر قاعدة واحدة وقم بتوصيلها من خلال إشارة مرئية.

## اختبار الاستيلاء على إيماءة المتصفح

جرّب السحب الذي يبدأ على سطح اللعبة ويستمر نحو حافة الشاشة، وتمرير الصفحة رأسيًا الذي يبدأ على السطح، والتدوير أثناء الضغط، ولمس الإصبع الثاني في مكان آخر. تأكد من عدم استمرار أي شخصية في التحرك وعدم استمرار الضغط على أي زر بعد الإلغاء.

تؤثر الخاصية touch-action على الإيماءات التي يتعامل معها المتصفح. يوضح MDN أن المتصفحات يمكنها إرسال pointercancel عند تولي التحريك أو التكبير/التصغير. تعامل مع الإلغاء كنتيجة طبيعية يجب أن يتعامل معها نموذج التفاعل الخاص بك.

## أسئلة

**هل هل يعني pointercancel أن pointerup فشل؟** إنها إشارة منفصلة إلى أن المؤشر لن يستمر في التفاعل الحالي. قم بتشغيل عملية التنظيف وتطبيق قاعدة الإلغاء الخاصة باللعبة بدلاً من افتراض اكتمال الإجراء.

**هل يمكن أن تمنع عملية اللمس إلغاء كل مؤشر؟** لا، فهو يوجه معالجة المتصفح لإيماءات اللمس، ولكن لا يزال من الممكن أن تؤدي الحالات الأخرى إلى إنهاء تسليم المؤشر. استمر في التعامل مع الإلغاء حتى عندما يكون لسطح اللعبة قواعد إيماءات مخصصة.

## اتبع فضولك

- [استخدم أحداث المؤشر لإدخال لعبة المتصفح](https://oneshotgems.ai/ar/topics/pointer-events-for-games): نموذج الماوس والقلم واللمس من خلال أحداث المؤشر، مع الحفاظ على الالتقاط وهوية الجهاز وسلوك التوافق في حلقة اللعبة.
- [تصميم عناصر التحكم باللمس لألعاب الويب](https://oneshotgems.ai/ar/topics/touch-controls-for-web-games): خطّط للتفاعل باللمس مع مراعاة إيماءات المتصفح، والتغذية الراجعة المرئية الواضحة، وحالة المؤشر المحددة، كي تستجيب اللعبة على الهواتف بطريقة متوقعة.

## للمزيد من القراءة

- [MDN: حدث إلغاء المؤشر](https://developer.mozilla.org/en-US/docs/Web/API/Element/pointercancel_event)
- [MDN: عمل اللمس](https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Properties/touch-action)

---
الصفحة الأساسية: https://oneshotgems.ai/ar/topics/pointer-cancellation-in-games
