2010-01-18 49 views
3

我试图在flex控件上启用双击事件而不禁用默认的mouseup/mousedown行为。设置双击事件而不禁用默认的mouseup/mousedown行为

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

有没有一种方法来实现双击图形对象,同时保留旧的行为,从点击和持有?

回答

3

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

像这样:

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

如果你设置你的图形对象的“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