0

我有以下适用于 ios 应用程序的代码,

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

非常感谢您的任何回答。

4

3 回答 3

1

TransformGestureEvent.GESTURE_PAN 使用两个手指。

试试看,你会发现当你用两根手指按下屏幕并移动时,对象会开始平移。

改用 MouseEvent.MOUSEMOVE

编辑:从一本手册中看这句话:

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

希望这有帮助。

于 2012-09-15T18:06:59.110 回答
0

function onPan(e:MouseEvent):一定是 onPan(e:TransformGestureEvent)

于 2013-08-17T16:36:59.110 回答
0

只有当我做双指按压和移动时,潘才对我有用。我无法找到这些不同手势实际上是什么的正确描述,但它似乎就是这样。

于 2012-06-08T23:55:25.597 回答