/// <summary> /// 添加语音 /// </summary> private void AddVoiceContent(RichContent content) { GameObject icongo = NGUITools.AddChild(mWidget.gameObject, mIcon.gameObject); icongo.SetActive(true); UISprite sprite = icongo.GetComponent <UISprite>(); sprite.spriteName = content.content; sprite.MakePixelPerfect(); int width = sprite.width; int height = sprite.height; icongo.name = "voiceobj"; BoxCollider boxcollider = UtilTools.SafeAddComponent <BoxCollider>(icongo); boxcollider.size = new Vector3(sprite.width, sprite.height, 0); boxcollider.center = new Vector3(sprite.width * 0.5f, -sprite.height * 0.5f, 0); //UISpriteAnimation anim = UtilTools.SafeAddComponent<UISpriteAnimation>(icongo); //anim.namePrefix = content.anim_namePrefix; //anim.loop = true; //anim.framesPerSecond = 30; UILinkText linkText = UtilTools.SafeAddComponent <UILinkText>(icongo); linkText.args = content.args; linkText.linktype = content.linktype; linkText.voiceObject = icongo; voice_args = content.args; UIDragScrollView dragScrollview = UtilTools.SafeAddComponent <UIDragScrollView>(icongo); float dy = height - cellHeight; float surplus = maxWidth - mPositionX; //一行剩余空间 if (surplus >= width) { icongo.transform.localPosition = new Vector3(mPositionX, mPositionY, 0); if (dy > 0) { m_dy = m_dy > dy ? m_dy : dy; } } else { mPositionX = mLabeltemp_x; mPositionY = mPositionY - cellHeight - m_dy - cellHeight + NGUIText.fontSize; m_dy = dy > 0 ? dy : 0; //iswrap = true; icongo.transform.localPosition = new Vector3(mPositionX, mPositionY, 0); } float iconwidth = width; mPositionX += iconwidth; SetCurrWidth(mPositionX); }
private void CreateVoiceLink() { Transform voiceTrans = transform.FindChild("voiceobj"); if (voiceTrans != null) { UIDragScrollView dragScrollview = UtilTools.SafeAddComponent <UIDragScrollView>(mWidget.gameObject); BoxCollider boxcollider = UtilTools.SafeAddComponent <BoxCollider>(mWidget.gameObject); boxcollider.size = new Vector3(mWidget.width, mWidget.height, 0); boxcollider.center = new Vector3(mWidget.width * 0.5f, -mWidget.height * 0.5f, 0); UIButtonColor btnColor = UtilTools.SafeAddComponent <UIButtonColor>(mWidget.gameObject); btnColor.duration = 0.1f; UILinkText linkText = UtilTools.SafeAddComponent <UILinkText>(mWidget.gameObject); linkText.args = voice_args; linkText.linktype = LinkType.AUDIO; linkText.voiceObject = voiceTrans.gameObject; } }
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); } }