Exemple #1
0
    private void ParseWrapHref(string value, RichContent content)
    {
        mLabel.gameObject.SetActive(true);
        value = value.Replace("\n", "");

        NGUIText.fontSize    = mLabel.fontSize;
        NGUIText.finalSize   = mLabel.fontSize;
        NGUIText.dynamicFont = mLabel.trueTypeFont;
        NGUIText.rectWidth   = (int)(maxWidth - mPositionX);
        NGUIText.maxLines    = 10000;
        NGUIText.rectHeight  = 10000;
        string sbstr = "";

        NGUIText.WrapText(value, out sbstr);

        if (string.IsNullOrEmpty(sbstr))
        {
            SetCurrWidth(mPositionX);
            mPositionX = mLabeltemp_x;
            mPositionY = mPositionY - cellHeight - m_dy - cellHeight + NGUIText.fontSize;
            m_dy       = 0;
            //iswrap = true;
            ParseWrapHref(value, content);
            return;
        }

        GameObject labelgo = NGUITools.AddChild(mWidget.gameObject, mLabel.gameObject);

        labelgo.SetActive(true);
        UILabel label = labelgo.GetComponent <UILabel>();

        labelgo.transform.localPosition = new Vector3(mPositionX, mPositionY, 0);

        UIDragScrollView dragScrollview = UtilTools.SafeAddComponent <UIDragScrollView>(labelgo);

        UIButtonColor btnColor = UtilTools.SafeAddComponent <UIButtonColor>(labelgo);

        btnColor.duration     = 0.1f;
        btnColor.defaultColor = UtilTools.GetColorByLinkType(content);

        UILinkText linkText = UtilTools.SafeAddComponent <UILinkText>(labelgo);

        linkText.args     = content.args;
        linkText.linktype = content.linktype;
        if (content.linktype == LinkType.AUDIO)
        {
            label.color = textColor;
        }
        else
        {
            label.color = UtilTools.GetColorByLinkType(content);
        }

        int    index = sbstr.IndexOf("\n");
        string str   = "";

        if (index > -1)
        {
            str        = sbstr.Substring(0, index);
            label.text = str;

            BoxCollider boxcollider = UtilTools.SafeAddComponent <BoxCollider>(labelgo);
            boxcollider.size   = new Vector3(label.width, label.height, 0);
            boxcollider.center = new Vector3(label.width * 0.5f, -label.height * 0.5f, 0);

            SetCurrWidth(mPositionX + label.width);
            mPositionX = mLabeltemp_x;
            mPositionY = mPositionY - cellHeight - m_dy - cellHeight + NGUIText.fontSize;
            m_dy       = 0;
            //iswrap = true;
            sbstr = sbstr.Remove(0, str.Length);
            ParseWrapHref(sbstr, content);
        }
        else
        {
            str        = sbstr;
            label.text = str;

            BoxCollider boxcollider = UtilTools.SafeAddComponent <BoxCollider>(labelgo);
            boxcollider.size   = new Vector3(label.width, label.height, 0);
            boxcollider.center = new Vector3(label.width * 0.5f, -label.height * 0.5f, 0);

            int lastLabelwidth = label.width;
            mPositionX += lastLabelwidth;
            SetCurrWidth(mPositionX);
        }
    }