我有ios app的以下代码,
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组件的text属性。添加事件的offsetX和offsetY值 设置对象的x和y以在舞台上移动对象。
希望得到这个帮助。
答案 1 :(得分:0)
答案 2 :(得分:0)
function onPan(e:MouseEvent):
必须为onPan(e:TransformGestureEvent)