FairyGUI.TouchInfo.ClickTest C# (CSharp) Method

ClickTest() public method

public ClickTest ( ) : DisplayObject
return DisplayObject
		public DisplayObject ClickTest()
		{
			if (downTargets.Count == 0
				|| clickCancelled
				|| Mathf.Abs(x - downX) > 50 || Mathf.Abs(y - downY) > 50)
				return null;

			DisplayObject obj = downTargets[0];
			if (obj.stage != null) //依然派发到原来的downTarget,虽然可能它已经偏离当前位置,主要是为了正确处理点击缩放的效果
				return obj;

			obj = target;
			while (obj != null)
			{
				int i = downTargets.IndexOf(obj);
				if (i != -1 && obj.stage != null)
					return obj;

				obj = obj.parent;
			}

			return obj;
		}
	}

Usage Example

Example #1
0
        void HandleMouseEvents()
        {
            TouchInfo touch = _touches[0];

            if (touch.x != _touchPosition.x || touch.y != _touchPosition.y)
            {
                touch.x = _touchPosition.x;
                touch.y = _touchPosition.y;
                touch.UpdateEvent();
                onTouchMove.Call(touch.evt);

                if (touch.lastRollOver != touch.target)
                {
                    HandleRollOver(touch);
                }
            }

            if (Input.GetMouseButtonDown(0) || Input.GetMouseButtonDown(1) || Input.GetMouseButtonDown(2))
            {
                if (!touch.began)
                {
                    _touchCount = 1;
                    touch.begin();
                    touch.button = Input.GetMouseButtonDown(2) ? 2 : (Input.GetMouseButtonDown(1) ? 1 : 0);
                    this.focus   = touch.target;

                    if (touch.target != null)
                    {
                        touch.UpdateEvent();
                        touch.target.onTouchBegin.BubbleCall(touch.evt);
                    }
                }
            }
            if (Input.GetMouseButtonUp(0) || Input.GetMouseButtonUp(1) || Input.GetMouseButtonUp(2))
            {
                if (touch.began)
                {
                    _touchCount = 0;
                    touch.end();

                    DisplayObject clickTarget = touch.ClickTest();
                    if (clickTarget != null)
                    {
                        touch.UpdateEvent();

                        if (Input.GetMouseButtonUp(1))
                        {
                            clickTarget.onRightClick.BubbleCall(touch.evt);
                        }
                        else
                        {
                            clickTarget.onClick.BubbleCall(touch.evt);
                        }
                    }
                }
            }
        }
All Usage Examples Of FairyGUI.TouchInfo::ClickTest