اضبط حدثًا نقرًا مزدوجًا دون تعطيل سلوك Mouseup/Mousedown الافتراضي

StackOverflow https://stackoverflow.com/questions/2089265

سؤال

أحاول تمكين حدث النقر المزدوج على عنصر تحكم مرن دون تعطيل سلوكيات الماوس/mousedown الافتراضية.

أنا أستخدم ESRI Flex API لخادم ArcGIS ، ولدي تحكم في خريطة مع طبقة خلفية واحدة و GraphicLayer. تحتوي طبقة الرسومات على العديد من الكائنات الرسومية التي تستجيب لـ Mouseover ، وتسمح للمستخدم بحفر الخريطة إذا نقر ومكتب. ومع ذلك ، عندما أقوم بتنفيذ معالج حدث النقر المزدوج للكائنات الرسومية ، لم يعد يبدو أنها تفتقر إلى سلوكهم الافتراضي على الخريطة.

هل هناك طريقة لتنفيذ نقر مزدوج على كائن رسومي مع الحفاظ على السلوك القديم من النقر والاحتفاظ؟

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

المحلول

لقد قمت بحل هذا عن طريق إرفاق حدث النقر المزدوج بالخريطة ، بدلاً من الرسم ، واستخدام السمة الهدف للحدث للحصول على الرسم الذي أردت استخدامه.

مثله:

map.addEventListener(MouseEvent.DOUBLE_CLICK, function(event:MouseEvent):void
{
    var graphic:Graphic = event.target as Graphic;
    if(graphic)
    {
        ...
    }
});

نصائح أخرى

إذا قمت بتعيين خاصية "checkformouseListeners" على خطأ في كائنات الرسوم الخاصة بك ، فسيتم الحفاظ على خريطة الافتراضية/السحب.

graphic.addEventListener(MouseEvent.DOUBLE_CLICK, function(event:MouseEvent):void {
    var graphic:Graphic = event.target as Graphic;
    if(graphic) {
      ...
    }
});

//preserve the default click/drag behavior on the map
graphic.checkForMouseListeners = false;

http://resources.esri.com/help/9.3/arcgisserver/apis/flex/apiref/com/esri/ags/graphic.html#checkformouselisteners

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