Définir un événement double clic sans désactiver mouseup / comportement par défaut mousedown

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

Question

Je suis en train de permettre un événement double-cliquez sur un contrôle flexible sans désactiver les comportements mouseup par défaut / mousedown.

J'utilise l'API Flex pour le serveur ESRI ArcGIS, et j'ai un contrôle de la carte avec une couche de fond et un GraphicLayer. La couche graphique a plusieurs objets graphiques qui répondent à MouseOver et permettre à l'utilisateur de déplacer la carte si elles cliquez et maintenez. Cependant, lorsque j'implémente un double gestionnaire d'événements de clic pour les objets graphiques, ils ne semblent plus à bouillonner leur comportement par défaut à la carte.

Y at-il un moyen de mettre en œuvre un double-clic sur un objet graphique tout en préservant l'ancien comportement de cliquer et maintenant?

Était-ce utile?

La solution

Je résolu ce problème en fixant l'événement double clic pour la carte, plutôt que le graphique, et en utilisant l'attribut cible de l'événement pour obtenir le graphique que je voulais utiliser.

Comme ceci:

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

Autres conseils

Si vous définissez la « checkForMouseListeners » propriété false sur vos objets graphiques, le comportement par défaut carte cliquer / glisser sera conservé.

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top