一直在玩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; }Been playing with the Storm Emulator and the 4.7 JDE, for the life of me I can't figure out how to fire gesture events in the emulator.
Below is the touch event code for the RIM sample app EmbeddedMapDemo. It seems straightforward enough, but touchGesture.getEvent() == TouchGesture.SWIPE never seems to register to true.
How can I register swipes in the Emulator? With my mouse I try doing left-click and drag but that does not seem to work.
/** * @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。
在模拟器上做手势有点困难,你必须快速移动,但如果使用鼠标右键,你应该能够做到。
Pressing the left mouse button simulates clicking down the screen... the simulator (and also an actual Storm device, I think) won't fire TouchGesture events while you're clicking down on the screen.
What you want to do is hold down the right mouse button and drag, since the right mouse button simulates a screen tap, without click. This way, you should be able to get TouchGestures to fire.
It's a little hard to do a gesture on the simulator, you kinda have to move fast, but if you use the right mouse button you should be able to do it.
更多推荐
发布评论