2012-03-01 5 views
0

J'aiévénement tactile Blackberry heurtant

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 
     } 
    } 

Le problème est que Pinch, tire DOWN -> GESTURE -> UP

Les événements MOVE DOWN UP sont utilisés pour faire glisser la carte autour.

Où Pinch est pour zoomer/dézoomer.

Comment puis-je les garder séparés?

Répondre

1

En utilisant PINCH_BEGIN. J'ai mis une variable globale myMode qui lui indique son mode de pincement. Donc MOVE et UP Ne peut pas tirer.

Puis, en pinçant, réinitialisez le mode.

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 

    } 
} 

De cette façon, pour le déplacer fonctionne:

DOWN -> MOVE -> UP

et pincement fonctionne: Et est

DOWN -> DOWN -> PINCH_BEGIN -> PINCH_END

(PINCH_BEGIN exécute avant MOVE est tenté d'appeler. surchargé par le nouveau mode)

Questions connexes