Установить событие двойного щелчка, не отключая поведение мыши по умолчанию / mousedown по умолчанию - PullRequest
3 голосов
/ 19 января 2010

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

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

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

Ответы [ 2 ]

3 голосов
/ 22 февраля 2010

Если вы установите для свойства "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

3 голосов
/ 19 января 2010

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

Как это:

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