Установите событие двойного щелчка без отключения поведения мыши вверх/вниз по умолчанию.

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

Вопрос

Я пытаюсь включить событие двойного щелчка на гибком элементе управления, не отключая поведение мыши вверх/вниз по умолчанию.

Я использую ESRI Flex API для сервера Arcgis, и у меня есть элемент управления картой с одним фоновым слоем и графическим слоем.Графический слой имеет несколько графических объектов, которые реагируют на наведение курсора мыши и позволяют пользователю перемещать карту, если он щелкнет и удержит.Однако, когда я реализую обработчик событий двойного щелчка для графических объектов, они больше не отображают на карте свое поведение по умолчанию.

Есть ли способ реализовать двойной щелчок по графическому объекту, сохранив при этом старое поведение при нажатии и удерживании?

Это было полезно?

Решение

Я решил эту проблему, прикрепив событие двойного щелчка к карте, а не к графике, и используя целевой атрибут события, чтобы получить графику, которую я хотел использовать.

Так:

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

Другие советы

Если вы установите для свойства «checkForMouseListeners» значение false на ваших графических объектах, то поведение щелчка/перетаскивания карты по умолчанию будет сохранено.

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