public override void Copy(SpriteRoot s, ControlCopyFlags flags)
        {
            base.Copy(s, flags);
            if (!(s is UIBtnWWW))
            {
                return;
            }
            LinkText linkText = (LinkText)s;

            if ((flags & ControlCopyFlags.Settings) == ControlCopyFlags.Settings)
            {
                this.linkTextType = linkText.linkTextType;
            }
        }
        public static LinkText LinkText(string name, EmoticonInfo.ChatTextInfo chatTextInfo, ITEM linkItem, Color color, string defaultColor, SpriteText.Font_Effect fontEffect)
        {
            UIBaseInfoLoader uIBaseInfoLoader = UIBaseFileManager.FindUIImageDictionary(name, "Com_I_Transparent");

            if (uIBaseInfoLoader == null)
            {
                return(null);
            }
            GameObject gameObject = new GameObject(name);
            LinkText   linkText   = gameObject.AddComponent <LinkText>();

            linkText.UpdateText       = true;
            linkText.gameObject.layer = GUICamera.UILayer;
            linkText.SetAnchor(SpriteRoot.ANCHOR_METHOD.UPPER_LEFT);
            linkText.linkTextType = chatTextInfo.linkTextType;
            linkText.CreateSpriteText();
            if (chatTextInfo.linkTextType == UnityForms.LinkText.TYPE.PLAYER)
            {
                if (10 >= chatTextInfo.normalText.Length || string.Compare(chatTextInfo.normalText, 0, "[#", 0, 2) != 0 || chatTextInfo.normalText[10] != ']')
                {
                    linkText.ColorText = defaultColor;
                }
                linkText.NormalColorText = defaultColor;
                linkText.OverColorText   = MsgHandler.HandleReturn <string>("GetTextColor", new object[]
                {
                    "1302"
                });
            }
            else
            {
                string text = string.Empty;
                if (chatTextInfo.linkTextType == UnityForms.LinkText.TYPE.COUPON)
                {
                    text = MsgHandler.HandleReturn <string>("GetTextColor", new object[]
                    {
                        "1306"
                    });
                }
                else if (fontEffect == SpriteText.Font_Effect.White_Shadow_Small)
                {
                    text = MsgHandler.HandleReturn <string>("GetTextColor", new object[]
                    {
                        "1206"
                    });
                }
                else
                {
                    text = MsgHandler.HandleReturn <string>("GetTextColor", new object[]
                    {
                        "1107"
                    });
                }
                linkText.ColorText       = text;
                linkText.NormalColorText = text;
                linkText.OverColorText   = text;
            }
            linkText.MultiLine  = false;
            linkText.BaseString = chatTextInfo.normalText;
            linkText.textKey    = chatTextInfo.textKey;
            linkText.SetCharacterSize(chatTextInfo.fontSize);
            linkText.SetFontEffect(fontEffect);
            linkText.Text = linkText.ColorText + chatTextInfo.normalText;
            if (chatTextInfo.linkTextType == UnityForms.LinkText.TYPE.ITEM)
            {
                linkText.data = linkItem;
            }
            linkText.SetSpriteTile(uIBaseInfoLoader.Tile, uIBaseInfoLoader.UVs.width / (float)uIBaseInfoLoader.ButtonCount, uIBaseInfoLoader.UVs.height);
            Material material = (Material)CResources.Load(uIBaseInfoLoader.Material);

            linkText.Setup(linkText.spriteText.TotalWidth, linkText.spriteText.TotalHeight, material);
            float pixelToUVsWidth = UIBaseFileManager.GetPixelToUVsWidth(material, uIBaseInfoLoader.UVs.width / (float)uIBaseInfoLoader.ButtonCount);
            Rect  rect            = new Rect(UIBaseFileManager.GetPixelToUVsWidth(material, uIBaseInfoLoader.UVs.x) - pixelToUVsWidth, 1f - UIBaseFileManager.GetPixelToUVsHeight(material, uIBaseInfoLoader.UVs.y + uIBaseInfoLoader.UVs.height), pixelToUVsWidth, UIBaseFileManager.GetPixelToUVsHeight(material, uIBaseInfoLoader.UVs.height));
            Rect  uvs             = new Rect(rect);

            uvs.x += pixelToUVsWidth;
            for (int i = 0; i < (int)uIBaseInfoLoader.ButtonCount; i++)
            {
                linkText.States[i].spriteFrames    = new CSpriteFrame[1];
                linkText.States[i].spriteFrames[0] = new CSpriteFrame();
                rect.x += pixelToUVsWidth;
                if ((int)uIBaseInfoLoader.ButtonCount <= i)
                {
                    linkText.States[i].spriteFrames[0].uvs = uvs;
                }
                else
                {
                    linkText.States[i].spriteFrames[0].uvs = rect;
                }
                linkText.animations[i].SetAnim(linkText.States[i], i);
            }
            linkText.autoResize = false;
            linkText.SetState(0);
            linkText.Start();
            return(linkText);
        }