@a941096560 写道:
//解析html 富文本 为 cocos 的富文本
parsingHTMLRichText(htmlRichText,bgColor) {
if(htmlRichText.length <= 0 || typeof(htmlRichText) != 'string') return
//解析出来的文本
let myRichText = ''
//背景底色
//背景底色
var bgColor = bgColor == null || bgColor == '' ?
''
: ''
//是否开始找颜色参数 记录颜色的文本
var isFindColor = false
var colorStr = ''
//开始找 <> 开头和结尾括号 的位置
var isFindFormat = false
var startIndex = 0
var endIndex = 0
var formatString = ''myRichText += bgColor
for(var i = 0 ; i < htmlRichText.length; i ++){//找特殊标签 开始的标签 if(htmlRichText[i] == '<'){ isFindFormat = true startIndex = i } //是否开始找颜色 if(isFindFormat == true && htmlRichText[i] == '#'){ isFindColor = true } //如果开始找颜色了 if( isFindColor == true){ colorStr += htmlRichText[i] //结束找颜色 if(colorStr.length == 7){ isFindColor = false } continue } //找到特殊标签 结束的标签 if(htmlRichText[i] == '>'){ isFindFormat = false endIndex = i //截取这段特殊格式的字符串 formatString = htmlRichText.slice(startIndex,endIndex) //如果是这个字符就添加背景色 if(formatString == '</span'){ myRichText += bgColor }else{ //否则添加 找到的特殊颜色 if(isFindColor == false){ myRichText += '</c><color=' + colorStr + '>' colorStr = '' } } continue } if(isFindFormat == false && isFindColor == false ){ myRichText += htmlRichText[i] }
}
myRichText += '</c>' return myRichText
},
帖子: 2
参与者: 1