示例#1
0
 public override void OnPointerUp(PointerEventData eventData)
 {
     onPointerUp.Invoke(eventData);
     base.OnPointerUp(eventData);
     if (eventData is UPointerEventDataEx)
     {
         UPointerEventDataEx eventDataEx = eventData as UPointerEventDataEx;
         eventDataEx.CanBubbleEvent = IsCanBubbleEvent;
     }
 }
示例#2
0
        public override void OnPointerClick(PointerEventData eventData)
        {
            base.OnPointerClick(eventData);

            if (eventData is UPointerEventDataEx)
            {
                UPointerEventDataEx eventDataEx = eventData as UPointerEventDataEx;
                eventDataEx.CanBubbleEvent = IsCanBubbleEvent;
            }
        }
示例#3
0
        public string GetMouseUIName(bool _bShowViewName = true)
        {
            string strRes = string.Empty;

            UPointerEventDataEx eventData = EventSystem.current.CurrentPointerEventData();

            if (eventData != null && eventData.pointerCurrentRaycast.isValid)
            {
                strRes = eventData.pointerCurrentRaycast.gameObject.name;
                Transform tmpTrans = eventData.pointerCurrentRaycast.gameObject.transform;
                if (_bShowViewName)
                {
                    List <Transform> tmpTransList = new List <Transform>();
                    while (tmpTrans != null)
                    {
                        tmpTransList.Add(tmpTrans);
                        tmpTrans = tmpTrans.parent;
                    }
                    strRes = tmpTransList[tmpTransList.Count - 3].name;
                }
            }

            return(strRes);
        }
示例#4
0
    /// <summary>
    /// 响应超链接文本区域光标移动
    /// </summary>
    private void OnURLPointerMove()
    {
        if (m_urlHrefInfo.Count <= 0 || m_nPointerState == -1)
        {
            return;
        }

        //离开了文本
        if (m_nPointerState == 1)
        {
            m_nPointerState = -1;
            if (m_nOldURLRect != null)
            {
                onHrefOut.Invoke(m_nOldURLRect.strHrefEvent.ToString());
                //Debug.Log("exit url rect:event:" + m_nOldURLRect.strHrefEvent.ToString());
            }
            m_nOldURLRect = null;
            return;
        }

        Vector2             lp;
        UPointerEventDataEx eventData = EventSystem.current.CurrentPointerEventData();

        RectTransformUtility.ScreenPointToLocalPointInRectangle(
            rectTransform, eventData.position, USpeedUI.UISystem.Instance.GetCamera(), out lp);

        //在文本内,检测进入/离开某个url字块区域
        foreach (var info in m_urlHrefInfo)
        {
            foreach (var rect in info.m_tagTextRects)
            {
                if (rect.Contains(lp))
                {
                    if (m_nOldURLRect == null)
                    {
                        m_nOldURLRect = info;
                        onHrefOver.Invoke(info.strHrefEvent.ToString());
                        //Debug.Log("enter url rect:" + rect + " event:" + info.strHrefEvent.ToString());
                    }
                    else
                    {
                        if (!info.Equals(m_nOldURLRect))
                        {
                            //Debug.Log("exit url rect: event:" + m_nOldURLRect.strHrefEvent.ToString());
                            onHrefOut.Invoke(info.strHrefEvent.ToString());
                            m_nOldURLRect = info;
                            onHrefOver.Invoke(info.strHrefEvent.ToString());
                            //Debug.Log("enter url rect:event:" + info.strHrefEvent.ToString());
                        }
                    }
                    return;
                }
            }
        }

        //光标还在文本区域内,但不在URL字块区域
        if (m_nOldURLRect != null)
        {
            //Debug.Log("exit url rect: event:"  + m_nOldURLRect.strHrefEvent.ToString());
            onHrefOut.Invoke(m_nOldURLRect.strHrefEvent.ToString());
            m_nOldURLRect = null;
        }
    }