FairyGUI.DisplayObject.InternalHitTest C# (CSharp) Method

InternalHitTest() protected method

protected InternalHitTest ( ) : DisplayObject
return DisplayObject
        protected internal DisplayObject InternalHitTest()
        {
            if (!_visible || (HitTestContext.forTouch && (!_touchable || _touchDisabled)))
                return null;

            return HitTest();
        }

Usage Example

示例#1
0
		override protected DisplayObject HitTest()
		{
			if (_disabled)
				return null;

			if (this.cachedTransform.localScale.x == 0 || this.cachedTransform.localScale.y == 0)
				return null;

			Vector2 localPoint = new Vector2();
			Vector3 savedWorldPoint = HitTestContext.worldPoint;
			Vector3 savedDirection = HitTestContext.direction;

			if (hitArea != null)
			{
				if (!hitArea.HitTest(this, ref localPoint))
				{
					HitTestContext.worldPoint = savedWorldPoint;
					HitTestContext.direction = savedDirection;
					return null;
				}
			}
			else
			{
				localPoint = GetHitTestLocalPoint();
				if (_clipRect != null && !((Rect)_clipRect).Contains(localPoint))
				{
					HitTestContext.worldPoint = savedWorldPoint;
					HitTestContext.direction = savedDirection;
					return null;
				}
			}

			if (_mask != null && _mask.InternalHitTestMask() == null)
				return null;

			DisplayObject target = null;
			if (touchChildren)
			{
				int count = _children.Count;
				for (int i = count - 1; i >= 0; --i) // front to back!
				{
					DisplayObject child = _children[i];
					if (child == _mask)
						continue;

					target = child.InternalHitTest();
					if (target != null)
						break;
				}
			}

			if (target == null && opaque && (hitArea != null || _contentRect.Contains(localPoint)))
				target = this;

			HitTestContext.worldPoint = savedWorldPoint;
			HitTestContext.direction = savedDirection;

			return target;
		}
All Usage Examples Of FairyGUI.DisplayObject::InternalHitTest