Эмулятор Blackberry Storm - события TouchGesture не запускаются, как заставить Свайп работать?

StackOverflow https://stackoverflow.com/questions/1173044

Вопрос

Играл с эмулятором Storm и 4.7 JDE, хоть убейте, я не могу понять, как запускать события жестов в эмуляторе.

Ниже приведен код события касания для примера приложения RIM EmbeddedMapDemo.Это кажется достаточно простым, но touchGesture.getEvent() == TouchGesture.Похоже, что SWIPE никогда не регистрируется в true.

Как я могу зарегистрировать свайпы в эмуляторе?С помощью мыши я пытаюсь щелкнуть левой кнопкой мыши и перетащить, но, похоже, это не работает.

/**
* @see Field#touchEvent(TouchEvent)
*/
protected boolean touchEvent(TouchEvent message)
{        
    boolean isConsumed = false;

    if(_mapField.isClicked())
    {
        TouchGesture touchGesture = message.getGesture(); 
        if (touchGesture != null)
        {                
            // If the user has performed a swipe gesture we will 
            // move the map accordingly.
            if (touchGesture.getEvent() == TouchGesture.SWIPE)
            {      
                // Retrieve the swipe magnitude so we know how
                // far to move the map.
                int magnitude = touchGesture.getSwipeMagnitude();

                // Move the map in the direction of the swipe.
                switch(touchGesture.getSwipeDirection())
                {
                    case TouchGesture.SWIPE_NORTH:
                        _mapField.move(0, - magnitude);
                        break;
                    case TouchGesture.SWIPE_SOUTH:
                        _mapField.move(0, magnitude);
                        break;
                    case TouchGesture.SWIPE_EAST:
                        _mapField.move(- magnitude, 0);
                        break;
                    case TouchGesture.SWIPE_WEST:
                        _mapField.move(magnitude, 0);
                        break;                            
                } 
                // We've consumed the touch event.
                isConsumed = true; 
            }
        }     
    }
    return isConsumed;       
}
Это было полезно?

Решение

Нажатие левой кнопки мыши имитирует щелчок по экрану вниз...симулятор (а также, я думаю, настоящее устройство Storm) не будет запускать события TouchGesture, пока вы нажимаете вниз по экрану.

То, что вы хотите сделать, это удерживать нажатой кнопку правая кнопка мыши и перетащите, поскольку правая кнопка мыши имитирует касание экрана, без щелчка.Таким образом, вы должны быть в состоянии заставить срабатывать сенсорные панели.

Немного сложно выполнить жест на симуляторе, вам вроде как приходится двигаться быстро, но если вы используете правую кнопку мыши, вы должны быть в состоянии это сделать.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top