2012-05-17 81 views
0

我对iOS应用下面的代码,TransformGestureEvent.GESTURE_PAN不会触发事件

 Multitouch.inputMode = MultitouchInputMode.GESTURE; 
     var mySprite:Sprite = new Sprite(); 
     mySprite.addEventListener(TransformGestureEvent.GESTURE_PAN, onPan); 
     mySprite.addEventListener(TransformGestureEvent.GESTURE_SWIPE, onSwipe); 
     mySprite.addEventListener(TransformGestureEvent.GESTURE_ZOOM, onZoom); 
     mySprite.addEventListener(MouseEvent.CLICK, onClick); 
     mySprite.graphics.beginFill(0x336699); 
     mySprite.graphics.drawRect(0, 0, 80, 80); 
     mySprite.x = 100; 
     mySprite.y = 100; 
     var myTextField:TextField = new TextField(); 
     myTextField.y = 200; 
     addChild(mySprite); 
     addChild(myTextField); 
     myTextField.text = "Wait"; 

     function onClick(e:MouseEvent):void { 
      myTextField.text = "onClick"; 
     } 

     function onPan(e:MouseEvent):void { 
      myTextField.text = "onPan"; 
     } 

     function onSwipe(e:TransformGestureEvent):void { 
      myTextField.text = "onSwipe"; 
     } 

     function onZoom(e:TransformGestureEvent):void { 
      myTextField.text = "onZoom"; 
     } 

当我测试的iTouch的应用程序,一切正常,除了onPan。无论我做什么,似乎TransformGestureEvent.GESTURE_PAN事件都不会触发。当我按下时移动手指时,onSwipe被调用。如果我将TransformGestureEvent.GESTURE_SWIPE的事件侦听器注释掉,则在按住时移动手指时不会调用任何事件。

我是否在做泛姿态错误? TransformGestureEvent.GESTURE_PAN和TransformGestureEvent.GESTURE_SWIPE手势有什么区别?

非常感谢您的任何答案。

回答

0

潘只为我工作时,我做了双指按和移动。我无法找到这些不同的手势实际是什么的适当描述,但这就是它的样子。

1

TransformGestureEvent.GESTURE_PAN使用两根手指。

试试吧,你会检查当你用两个手指按下屏幕并移动时,对象将开始平移。

改用MouseEvent.MOUSEMOVE

编辑:从一个手册看这句话:

当用户抓取对象用两个手指并拖动它,将触发TransformGesture Event.GESTURE_PAN事件并调用onGesturePan方法。在 onGesturePan方法中,将此事件的offsetX和offsetY值写入TextArea组件的 文本属性。添加事件的offsetX和offsetY值 可设置对象的x和y以在整个舞台上移动对象。

希望这有助于。

+0

谢谢你的答案。 Domoindal,你的意思是使用MouseEvent.MOUSEMOVE将启用单指潘? – user1277061

+0

是的,这是主意。 – domoindal

0

function onPan(e:MouseEvent):必须onPan(e:TransformGestureEvent)