Defina um evento de clique duplo sem desativar o comportamento padrão do mouseup/mousedown
-
21-09-2019 - |
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?
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;