2012-03-01 82 views
0

我有黑莓觸摸屏事件發生衝突

if(eventCode == TouchEvent.DOWN) 
    { 
     //code 
    } 
    if(eventCode == TouchEvent.MOVE) 
    { 
     //code 
    } 
    if(eventCode == TouchEvent.UP) 
    { 
     //code 
    } 
    if(eventCode == TouchEvent.GESTURE) 
    { 
     if (gestureCode == TouchGesture.PINCH_END) 
     { 
      //code 
     } 
    } 

的問題是,一個夾管,觸發DOWN -> GESTURE -> UP

的活動上下移動被用於圍繞拖動地圖。

Pinch用於放大/縮小。

我怎樣才能讓他們分開?

回答

1

使用PINCH_BEGIN。我設置了一個全局變量myMode,它告訴它它處於夾點模式。所以MOVEUP不能開火。

然後捏起來,重置模式。

if(eventCode == TouchEvent.DOWN) 
{ 
    mode = 1; 
    //code 
} 
if(eventCode == TouchEvent.MOVE && mode == 1) 
{ 
    //code 
} 
if(eventCode == TouchEvent.UP && mode == 1) 
{ 
    mode = 0; 
    //code 
} 
if(eventCode == TouchEvent.GESTURE) 
{ 
    if (gestureCode == TouchGesture.PINCH_BEGIN) 
    { 
     mode = 2; 
    } 
    if (gestureCode == TouchGesture.PINCH_END) 
    { 
     mode = 0; 
     //code 

    } 
} 

這樣的MOVE運行:

DOWN -> MOVE -> UP

,捏運行:

DOWN -> DOWN -> PINCH_BEGIN -> PINCH_END

PINCH_BEGINMOVE之前執行試圖將被調用,這樣是。被新模式覆蓋)