2012-05-17 104 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)