您的位置:首页 > 移动开发 > Cocos引擎

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

2015-11-04 08:27 1156 查看
开发中,难免遇见需要在文本内容里,特殊标记的内容,如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)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息