2012-05-17 6 views
0

У меня есть следующий код для приложения Иос,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

Pan только работал для меня, когда я делал двойным нажатием пальца и двигался. Я не могу найти правильное описание того, что эти разные жесты на самом деле, но это то, что кажется.

1

TransformGestureEvent.GESTURE_PAN работает двумя пальцами.

Попробуйте, и вы убедитесь, что при нажатии на экран двумя пальцами и перемещении объект начнет панорамирование.

Используйте вместо MouseEvent.MOUSEMOVE

EDIT: Посмотрите это предложение от одного Руководства:

Когда пользователь захватывает объект с двумя пальцами и тащит его, TransformGesture Event.GESTURE_PAN событие инициируется и вызывается метод onGesturePan. В методе onGesturePan значения offsetX и offsetY этого события записываются в текстовое свойство компонента TextArea. Добавление значений offsetX и offsetY события устанавливает объекты x и y для перемещения объекта по сцене.

Надеюсь, что эта помощь.

+0

Спасибо за ответы. Домоиндал, вы имеете в виду использование MouseEvent.MOUSEMOVE, позволяющее использовать палец с одним пальцем? – user1277061

+0

Да, это идея. – domoindal

0

function onPan(e:MouseEvent): должен быть onPan(e:TransformGestureEvent)

Смежные вопросы