2010-01-18 52 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