delphixe手势处理流程

2017-07-23 19:40:57来源:CSDN作者:xiajingcheng人点击

delphixe手势处理流程

 

注:以安卓系统为例

 

点击屏幕,由安卓系统引发事件:

1>FMX.Platform.Android.HandleAndroidInputEvent

    1.2>FMX.Platform.Android.HandleAndroidMotionEvent

        1.2.1>FMX.Platform.Android.HandleMultiTouch

            1.2.1.1>FMX.Platform.Android.TWindowManager.MultiTouch

                通过TMultiTouchManagerAndroid.HandleTouches

                调用:FMX.MultiTouch.Android.HandleTouches

                在HandleTouches 之中 触发以下事件:

1>Obj.MultiTouch,触发控件的ontouch事件。

                 2>TouchDown

                    2.1>EndInteractiveGesture(Zoom/Rotate)

                        2.1.1>SendCMGestureMessage

                  3>TouchUp

                    3.1>EndInteractiveGesture(Zoom/Rotate)

                        3.1.1>SendCMGestureMessage,发送手势结束消息。

                    3.2>GestureObj.Tap,触发控件的点击事件。

                  4>TouchMove

                    4.1>EndInteractiveGesture

                        4.1.1> SendCMGestureMessage

                    4.2>FindAndHandleInteractiveGesture

                        4.2.1>IsZoom,判断是否是放大手势,如果是发送消息。

                        4.3.1>IsRotate,判断是否是旋转手势,如果是发送消息。

                  5>TouchCancel

 

       //当没有活动的交互手势时才会触发此1.2.2事件:

        1.2.2>FMX.Platform.Android.ProcessAndroidMouseEvents

          1.2.2.1>FMX.Platform.Android.MouseDown

          1.2.2.2>FMX.Platform.Android.MouseUp

          1.2.2.2>FMX.Platform.Android.MouseMove

        1.2.3>ProcessAndroidGestureEvents

          1.2.3.1>AMOTION_EVENT_ACTION_DOWN,第一个手指点击时触发

          1.2.3.2>AMOTION_EVENT_ACTION_UP,第一个手指离开时触发

          1.2.3.3>AMOTION_EVENT_ACTION_MOVE,按压不动或滑动时触发

          1.2.3.4>AMOTION_EVENT_ACTION_POINTER_DOWN,第二个手指点击时触发

          1.2.3.5>AMOTION_EVENT_ACTION_POINTER_UP,第二个手指离开时触发

 

 

 

 

交互手势值的传递:

1>FMX.Types.TCustomTouchManager.SetInteractiveGestures

  1.2>TCommonCustomForm(OwnerForm).AddRecognizer(Gesture)

1.2.1>TPlatformServices.AddRecognizer(Recognizer,Self)

      此AddRecognizer方法在FMX.Platform.Android之中实现

 

FMX.Platform.Android单元之中属性说明:

FActiveInteractiveGestures:当前活动的手势集。

FEnabledInteractiveGestures:控件或窗体之中设置的有效的手势集。

 

 

最新文章

123

最新摄影

闪念基因

微信扫一扫

第七城市微信公众平台