سؤال

أنا أعمل مع مكون قائمة مخصصة في Flex4. لقد قمت بإنشاء Itemorender مخصص وكل شيء يبدو ويعمل كما أريد، لكنني أحاول الحصول على حدث انقر مزدوج. أنا أتلقى مفتاح أسفل وجميع الأحداث الأخرى، ولكن ليس هذا واحد. لقد قمت بتمكين النقر المزدوج في مكون القائمة

 doubleClickEnabled="true"

وأضيفت مستمع حدث

ListEvent.ITEM_DOUBLE_CLICK

يمكنني النقر طالما أردت، فإن الحدث لم يتم تشغيله فقط. يمكنني استخدام أي نصيحة. شكرا.

هل كانت مفيدة؟

المحلول

تريد الاستماع ل MouseEvent.DOUBLE_CLICK ثم يمكنك معرفة ما تم النقر فوقه event.target.

نصائح أخرى

لقد خبطت رأسي على الحائط لساعات بسبب هذا! يعمل Adobe للخلف مع وظيفة المكون! على أي حال، وجدت حل لائق:

نحن ذاهبون لإضافة مستمع الحدث Double_Click إلى Datagroup في القائمة، والتي هي حاوية العناصر:

list.dataGroup.doubleClickEnabled = true;   
list.dataGroup.addEventListener(MouseEvent.DOUBLE_CLICK, handleDoubleClick);

الآن يعمل بشكل جميل، وليس إثارة النقر المزدوج من Scroller، ولكن العزاء استفزاز نقرة مزدوجة من مساحة مفتوحة (Datagroup نفسها) في القائمة التي لا توجد فيها عناصر. لذلك نحن فقط نواصل معالج الأحداث إذا E.TARGET! = Datagroup:

private function handleDoubleClick(e:MouseEvent):void
{
  if (list.dataGroup != e.target)
  {
    // double click code
  }
}

الآن يعمل بشكل جيد :) phew! يجب أن نضيع الوقت في هذه الأشياء ...


الحل السيئ -> لا تحاول مقارنة فئة E.TARGET إلى فئة ItemRenderer في القائمة، نظرا لأن E.Target في بعض الأحيان هي التسمية الفعلية لهذا البند.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top