fliping这个函数当用户用手在屏幕上拖拽并且做出翻页动作时触发。

 

 

longPressed 这个很好理解,就是手指的长按动作,用户做出长按动作的时候触发

 

 

pinch收缩,其实就是一个多点触摸的手势且两个手指做出收缩的动作,为了解释方便,

 

 

4.tap 就是轻击了,和触摸有点类似,不过速度应该比触摸快一些

5.TouchDown
也非常好理解,手指按下的一瞬间就触发,不管其后是什么其他的动作都会触发touchDown()方法,如果时间较短,在touchDown()后会触发tap()

6zoom pinch对应,也是是一个多点触摸的手势,并且两个手指做出放大的动作

7.pan 和fliping比较类似,但是没有最后翻页的动作:

 

 

GestureDetector.GestureListener并不是一个InputProcessor,我们需要封装一个GestureDetector(它是一个InputProcessor)并加入系统监听列表

  1. Gdx.input.setInputProcessor(new GestureDetector(this));

 

 同样的,对于这里有多个对象需要捕捉用户触摸事件的情况(如Progress既实现了InputProcessor接口也实现了GestureDetecotor.Listener),我们实际中的语句如下:

  1. multiplexer.addProcessor(this);
  2.                 multiplexer.addProcessor(stage);
  3.                 multiplexer.addProcessor(new GestureDetector(this));
  4.                 Gdx.input.setInputProcessor(multiplexer);

 

我们来看看这两个回调函数:
  1. boolean pinch(Vector2 initialFirstPointer, Vector2 initialSecondPointer, Vector2 firstPointer, Vector2 secondPointer)
  2. boolean zoom(float originalDistance, float currentDistance)

pinch()方法中用到了一个类,Vector2,我们从名字就可以看出来,这个类代表了一个二维矢量,不过我们可以更简单的理解为Vector2就是一个点,里面有x,y两个坐标。回调函数pinch()里有四个Vector2对象,分别代表动作开始时的两个手指的位置和当前两个手指的位置

 

同理对于zoom()方法也是一样,回调函数里面传入了两个参数,一个是动作开始时两个手指的距离,第二个参数就是当前两个手指之间的距离。   

pinch()方法比zoom()方法更全面,因为我们在pinch()方法中得到的是点的坐标,也可以转化成zoom()中的距离。