示例#1
0
 void IInputManager.TouchMove(TouchMoveEvent moveEvent)
 {
     DateTime now = DateTime.Now;
       _lastInputTime = now;
       _lastMouseUsageTime = now; //TODO: same as mouse, or another?
       TryEvent_NoLock(ToInputEvent<InputTouchMoveEvent>(moveEvent));
 }
示例#2
0
        public override void OnTouchMove(TouchMoveEvent touchEventArgs)
        {
            base.OnTouchMove(touchEventArgs);
            if (!touchEventArgs.IsPrimaryContact)
            {
                return;
            }

            if (_lastTouchEvent != null)
            {
                // Transform screen (i.e. 720p) to skin coordinates (i.e. 1080p)
                float lastX = _lastTouchEvent.LocationX;
                float lastY = _lastTouchEvent.LocationY;
                float currX = touchEventArgs.LocationX;
                float currY = touchEventArgs.LocationY;
                if (!TransformMouseCoordinates(ref lastX, ref lastY) || !TransformMouseCoordinates(ref currX, ref currY))
                {
                    return;
                }

                var scrollX = currX - lastX;
                var scrollY = currY - lastY;

                IScrollViewerFocusSupport svfs = FindScrollControl() as IScrollViewerFocusSupport;
                if (svfs == null)
                {
                    return;
                }

                svfs.Scroll(scrollX, scrollY);
            }
        }
示例#3
0
    private void CheckInput()
    {
        if (Input.touchCount > 0 && AbleToInput)
        {
            Touch touch = Input.GetTouch(0);
            if (touch.phase == TouchPhase.Began)
            {
                TouchStartEvent?.Invoke(touch.position);
                _inputSession = true;
            }

            if (_inputSession)
            {
                if (touch.phase == TouchPhase.Moved)
                {
                    TouchMoveEvent?.Invoke(touch.position);
                }

                if (touch.phase == TouchPhase.Ended)
                {
                    AbleToInput = false;
                    TouchEndEvent?.Invoke();
                    _inputSession = false;
                }
            }
        }
    }
示例#4
0
        internal void ExecuteTouchMove(TouchMoveEvent evt)
        {
            var dlgt = TouchMove;

            if (dlgt != null)
            {
                dlgt(this, evt);
            }
        }
 void HandleTouchMove3(TouchMoveEvent args)
 {
     if (pickedNode != null)
     {
         var graphics = GetSubsystem <Graphics>();
         ConstraintMouse2D constraintMouse = pickedNode.GetComponent <ConstraintMouse2D>();
         Vector3           pos             = camera.ScreenToWorldPoint(new Vector3((float)args.X / graphics.Width, (float)args.Y / graphics.Height, 0.0f));
         constraintMouse.Target = new Vector2(pos.X, pos.Y);
     }
 }
            protected override void OnTouchMove(TouchMoveEvent e)
            {
                if (IsDisposed)
                {
                    return;
                }

                var circle = drawableTouches[(int)e.Touch.Source];

                AddInternal(new FadingCircle(circle));
                circle.Position = e.Touch.Position;
            }
示例#7
0
 private void MainForm_OnTouchMove(object sender, TouchMoveEvent uiTouchEventArgs)
 {
     if (_renderThreadStopped)
     {
         return;
     }
     try
     {
         IInputManager inputManager = ServiceRegistration.Get <IInputManager>();
         inputManager.TouchMove(uiTouchEventArgs);
     }
     catch (Exception ex)
     {
         ServiceRegistration.Get <ILogger>().Error("SkinEngine MainForm: Error occured in TouchDown handler", ex);
     }
 }
示例#8
0
 private void HandleTouchMove(object sender, TouchMoveEvent touchEvent)
 {
     if (!HasInputFocus)
     {
         return;
     }
     try
     {
         lock (_syncObj)
             if (_root.CanHandleMouseMove() && GraphicsDevice.RenderPass == RenderPassType.SingleOrFirstPass)
             {
                 _root.OnTouchMove(touchEvent);
             }
     }
     catch (Exception e)
     {
         ServiceRegistration.Get <ILogger>().Error("Screen '{0}': Unhandled exception while processing touch move event", e, _resourceName);
     }
 }
示例#9
0
    public void tUpdate()
    {
        if (UnityUtil.CurPlatform == UnityUtil.PlatformEnum.android || UnityUtil.CurPlatform == UnityUtil.PlatformEnum.ios)
        {
            //在pc上,使用leanTouch模拟手势触控,是监控不到Input.touchCount的,所以不做这个判断
            //移动平台加这个判断,避免性能浪费
            //没触碰就掠过
            if (Input.touchCount <= 0)
            {
                return;
            }
        }

        //没注册事件也掠过,尽量避免浪费cpu
        if (null == TouchMoveEvent && null == TouchScaleEvent)
        {
            return;
        }

        //发出拖动事件
        Vector2 delta = GetScreenDelta();

        TouchMoveEvent.Invoke(delta);

        if (UnityUtil.CurPlatform == UnityUtil.PlatformEnum.android || UnityUtil.CurPlatform == UnityUtil.PlatformEnum.ios)
        {
            //touch小于2不计算缩放,要求双指缩放
            if (Input.touchCount < 2)
            {
                return;
            }
        }

        //发出缩放事件
        float ratio = GetPinchRatio();

        TouchScaleEvent.Invoke(ratio);
    }
 protected override void OnTouchMove(TouchMoveEvent e)
 {
     base.OnTouchMove(e);
     Hide();
 }
示例#11
0
 public virtual void OnTouchMove(TouchMoveEvent touchEventArgs)
 {
   foreach (UIElement child in GetChildren())
   {
     if (!child.IsVisible) continue;
     child.OnTouchMove(touchEventArgs);
   }
 }
示例#12
0
    public override void OnTouchMove(TouchMoveEvent touchEventArgs)
    {
      base.OnTouchMove(touchEventArgs);
      if (!touchEventArgs.IsPrimaryContact)
        return;

      if (_lastTouchEvent != null)
      {
        // Transform screen (i.e. 720p) to skin coordinates (i.e. 1080p)
        float lastX = _lastTouchEvent.LocationX;
        float lastY = _lastTouchEvent.LocationY;
        float currX = touchEventArgs.LocationX;
        float currY = touchEventArgs.LocationY;
        if (!TransformMouseCoordinates(ref lastX, ref lastY) || !TransformMouseCoordinates(ref currX, ref currY))
          return;

        var scrollX = currX - lastX;
        var scrollY = currY - lastY;

        IScrollViewerFocusSupport svfs = FindScrollControl() as IScrollViewerFocusSupport;
        if (svfs == null)
          return;

        svfs.Scroll(scrollX, scrollY);
      }
    }
示例#13
0
 public virtual bool OnTouchMove(TouchMoveEvent e)
 {
     return(false);
 }
示例#14
0
 public override bool OnTouchMove(TouchMoveEvent e)
 {
     return(onTouchMove != null && onTouchMove(e));
 }
示例#15
0
 public void TouchMoved(Touch touch)
 {
     TouchMoveEvent?.Invoke(touch);
 }
示例#16
0
 private void MainForm_OnTouchMove(object sender, TouchMoveEvent uiTouchEventArgs)
 {
   if (_renderThreadStopped)
     return;
   try
   {
     IInputManager inputManager = ServiceRegistration.Get<IInputManager>();
     inputManager.TouchMove(uiTouchEventArgs);
   }
   catch (Exception ex)
   {
     ServiceRegistration.Get<ILogger>().Error("SkinEngine MainForm: Error occured in TouchDown handler", ex);
   }
 }
示例#17
0
 void HandleTouchMove3(TouchMoveEvent args)
 {
     if (pickedNode != null)
     {
         var graphics = GetSubsystem<Graphics>();
         ConstraintMouse2D constraintMouse = pickedNode.GetComponent<ConstraintMouse2D>();
         Vector3 pos = camera.ScreenToWorldPoint(new Vector3((float)args.X / graphics.Width, (float)args.Y / graphics.Height, 0.0f));
         constraintMouse.Target = new Vector2(pos.X, pos.Y);
     }
 }