如何在AS3中确定主要滑动方向(使用MultiTouch)?

时间:2013-04-17 22:54:53

标签: actionscript-3 multi-touch swipe

我正在尝试使用AS3在触摸屏上实现非常简单的滑动识别。我只需要知道滑动是向左,向右,向上还是向下。

第一个问题:使用简单的MOUSE_DOWN和MOUSE_UP会更容易吗,只需计算移动的距离?

或者使用MultiTouch会更容易吗?

我看到MultiTouch的代码显示了如何实现滑动检测并获得方向:

        if (e.offsetY == 1) { 
    //User swiped towards bottom
    square_mc.y += 100; 
    }
    if (e.offsetY == -1) { 
    //User swiped towards top
    square_mc.y -= 100;
    }
            if (e.offsetX == 1) { 
    //User swiped towards right
    square_mc.x += 100; 
    }
    if (e.offsetX == -1) { 
    //User swiped towards left
    square_mc.x -= 100;
    }

但如果您需要解决一个方向(即向左或向上,向右或向下等),您如何做到(如果offsetX和offsetY是真正的偏移,为什么他们检查+1和 - 仅限1?或者这是一个在滑动过程中经常调用的函数?我试图完成一次COMPLETE滑动。)

我在想跳过MultiTouch可能更简单,但欢迎反馈。谢谢!

1 个答案:

答案 0 :(得分:0)

你可以做两件事来回答你自己的问题......

1重新阅读您的代码来自的教程..特别是“编码手势”http://www.republicofcode.com/tutorials/flash/as3swipegesture/

部分

2只是尝试并从观察结果中学习。例如......

  

但是如果你需要解决一个方向(那就是左边......那怎么样   你这样做了吗?

在您提供的代码if (e.offsetX == -1) { square_mc.x -= 100; }中,此行有什么问题。你测试过吗?向左方向滑动时,square_mc是否向左移动了100个像素?如果它奏效了你就成功地“解决了”一个方向,我想。您可以根据需要为其他方向添加其他If语句。