cocos2d-js RichText使用

本文介绍了一种在富文本中设置不同颜色文字的方法,通过解析包含颜色标记的文本,并使用特定的富文本元素来实现文字颜色的变化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需求:显示这样的一段文字

1.黑色,<font color='#ff2211'>随便填的颜色</font>黑色。\n2.第二行了<font color='#ee2211'>随便填的颜色</font>

其中的font标签用来包裹要用其他颜色显示的文字。

实现:

addRichText: function(content) {
		var richText 	= new ccui.RichText();		// 富文本控件
		var lines 		= content.split("\n");		// 所有行
		for(var i = 0; i < lines.length; i++) {
			var line = lines[i];					// 待处理的行
			var elemts = line.split(/<font color='(.*?)'>(.*?)<\/font>/);	// 按正则模板对行进行分割
			var color = cc.color.BLACK;				// 默认颜色
			for(var k = 0; k < elemts.length;) {
				var e = elemts[k];
				if(e[0] == "#") {
					color = cc.color(e);
					e = elemts[k + 1];
					k += 2;
				} else {
					color = cc.color.BLACK;
					k++;
				}
				var re = new ccui.RichElementText(i, color, 255, e, "res/ui/Font/zhunyuan.ttf", 30); // 符文本元素
				richText.pushBackElement(re);
			}
			var re = new ccui.RichElementText(i, color, 255, "\n", "res/ui/Font/zhunyuan.ttf", 30); // 换行
			richText.pushBackElement(re);
		}
		var detail_panel = this.rootUINode.getChildByName("detail_panel_1");
		detail_panel.addChild(richText);
		richText.ignoreContentAdaptWithSize(false);
		richText.width = 455;
		richText.height = 500;
		richText.setAnchorPoint(cc.p(0.5, 0.5));
		richText.setPosition(cc.p(detail_panel.getContentSize().width / 2, detail_panel.getContentSize().height / 2));
	}




                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

shangdibaozi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值