TransformGestureEvent.GESTURE_PAN事件不会触发

时间:2012-05-17 01:23:21

标签: actionscript

我有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手势有什么区别?

非常感谢您的回答。

3 个答案:

答案 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)