一直在使用Storm Emulator和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事件。

您想要做的是按住鼠标右键并拖动,因为鼠标右键模拟了屏幕点击,而无需单击。这样,您应该能够启动TouchGestures。

在模拟器上做手势有点困难,您必须快速移动,但是如果您使用鼠标右键,您应该能够做到。

关于blackberry - Blackberry Storm Emulator-TouchGesture事件未触发,如何使Swipe正常工作?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1173044/

10-10 18:30