Defina um evento de clique duplo sem desativar o comportamento padrão do mouseup/mousedown

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

Pergunta

Estou tentando ativar um evento de clique duplo em um controle flexível sem desativar os comportamentos padrão do MouseUp/Mousedown.

Estou usando a API do ESRI Flex para o ArcGIS Server e tenho um controle de mapa com uma camada de fundo e um gráfico. A camada gráfica possui vários objetos gráficos que respondem ao MouseOver e permitem que o usuário pague o mapa se clicar e segurar. No entanto, quando implemento um manipulador de eventos de clique duplo para os objetos gráficos, eles não parecem mais borbulhar seu comportamento padrão no mapa.

Existe uma maneira de implementar um clique duas vezes em um objeto gráfico, preservando o comportamento antigo de clicar e manter?

Foi útil?

Solução

Resolvi isso anexando o evento de clique duplo ao mapa, em vez do gráfico, e usando o atributo de destino do evento para obter o gráfico que eu queria usar.

Assim:

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

Outras dicas

Se você definir a propriedade "CheckFormouseListenners" como false em seus objetos gráficos, o comportamento padrão do mapa/arrastar mapa será preservado.

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top