Establecer un evento de doble clic sin desactivar mouseup default / comportamiento mousedown

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

Pregunta

Estoy intentando activar un evento de doble clic en un control de la flexión sin desactivar los comportamientos mouseup default / mousedown.

Estoy usando la API Flex ESRI ArcGIS para el servidor, y tengo un control de mapa con una capa de fondo y una GraphicLayer. La capa gráfica tiene varios objetos gráficos que responden al pasar el ratón, y permitir al usuario explorar el mapa, si hacen clic y mantener. Sin embargo, cuando implemente un controlador de eventos de clic doble para los objetos gráficos, que ya no parecen propagarse por su comportamiento por defecto para el mapa.

¿Hay una manera de poner en práctica un doble clic sobre un objeto gráfico preservando al mismo tiempo el antiguo comportamiento de clic y manteniendo?

¿Fue útil?

Solución

He resuelto este asociando el evento doble click en el mapa, en lugar del gráfico, y utilizando el atributo de destino del evento para obtener el gráfico que quería utilizar.

De esta manera:

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

Otros consejos

Si se establece la propiedad "checkForMouseListeners" false en sus objetos gráficos, entonces el comportamiento por defecto del mapa clic / arrastrar serán preservados.

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 bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top