设置双击事件而不禁用默认的mouseup / mousedown行为

时间:2010-01-18 21:14:32

标签: flex gis esri arcgis-server

我正在尝试在flex控件上启用双击事件,而不会禁用默认的mouseup / mousedown行为。

我正在使用ESRI Flex API for arcgis服务器,我有一个带有一个背景图层和一个GraphicLayer的地图控件。图形图层具有多个响应鼠标悬停的图形对象,并允许用户在单击并按住时平移地图。但是,当我为图形对象实现双击事件处理程序时,它们似乎不再将其默认行为冒泡到地图中。

有没有办法实现双击Graphic对象,同时保留点击并按住旧行为?

2 个答案:

答案 0 :(得分:3)

我通过将双击事件附加到地图而不是图形来解决这个问题,并使用事件的目标属性来获取我想要使用的图形。

像这样:

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

答案 1 :(得分:3)

如果在Graphic对象上将“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