cocos2dx-3.x: lua 富文本,文本中插入颜色文本处理

开发中,难免遇见需要在文本内容里,特殊标记的内容,如npc名称,或者道具名称等需要标注颜色,所以封装了下面的方法,可以再公会和任务描述等特殊文本处使用,代码如下:

-- 带参数的文本 格式为 是否自动换行,文本大小,字号,文本

function cc.exports.CreateRichText(basecolor,ignore,size,fontsize,key)
    --"ffaabb,qiuhe|ff0000,qiuhe|ffaabb,{1}|ffaabb,qiuhe{2}qiuhe"
  local m_text=<span style="font-size: 12.6315793991089px; font-family: Arial, Helvetica, sans-serif;">key</span>
    local _richText = ccui.RichText:create()
    if ignore~=nil then
    _richText:ignoreContentAdaptWithSize(ignore)
   end
    if size~=nil then
    _richText:setContentSize(size)
    end
    local max_table = string.split(m_text,"|") 
    for i, max in ipairs(max_table) do  
        local max1 = string.split(max,"#") 
        if table.getn(max1)<2 then
        local re1 = ccui.RichElementText:create(1,basecolor, 255,tostring(max1[1]), "simhei.ttf", fontsize)
         _richText:pushBackElement(re1)
        else
        local re1 = ccui.RichElementText:create(1, cc.c3b(string.format("%d",tonumber("0x"..string.sub(max1[1],1,2))), string.format("%d",tonumber("0x"..string.sub(max1[1],3,4))), string.format("%d",tonumber("0x"..string.sub(max1[1],5,6)))), 255,tostring(max1[2]), "simhei.ttf", fontsize)
        _richText:pushBackElement(re1)
        end
       
    end
    return _richText
end
引用:

local  mrt=cc.exports.CreateRichText(cc.c3b(255,255,255),false,cc.size(40,100),33,<span style="font-size: 12.6315793991089px; font-family: Arial, Helvetica, sans-serif;">"ffaabb,qiuhe|ff0000,qiuhe|ffaabb,{1}|ffaabb,qiuhe{2}qiuhe"</span>)
    mrt:setPosition(200,200)
    self:addChild(mrt,10)



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值