cocos 实现富文本
例子:
local str = string.format( "每次兑换扣除%s点活力,获得%s经验。",
string.format( "<font size='20' fontPath='fonts/font.ttf'>%s</font>", 1),
string.format( "<font color='#%s' type='button' id='1' fontPath='fonts/font.ttf'>%s</font>", "FF7F00", "10000" )
)
-- 关键词<font> </font>表示句子需要去解析。<font>中可以跟color,size type fontPath等属性
--size 字体大小 color 字体颜色 type目前只实现了button:指这个字体可以被点击,如果一个文本中有多个font需要被点击并执行不同的代码,则加上id属性;fontPath 指字体路径。
RichTextCreator实现:
--[[
富文本生成器
例如:<font type='button' buttonID='1' color='#ffffff' size='20' > dajljl</font>
解释成:生成《 dajljl》并拥有点击事件,并对调事件ID为1,字体颜色为#ffffff,字体大小为20
--]]
local RichTextCreator = class('RichTextCreator')
local fontPath = "fonts/font.ttf"
local DEFAULTSIZE = 20
local DEFAULTCOLOR = cc.c3b(0, 0, 0)
local DEFAULTWIDTH = 200
function RichTextCreator:TransformToRGBValue(value)
local _r = tonumber("0x" .. string.sub(value, 1, 2))
local _g = tonumber("0x" .. string.sub(value, 3, 4))
local _b = tonumber("0x" .. string.sub(value, 5, 6))
return cc.c3b(_r, _g, _b)
end
function RichTextCreator:createRichElement(richText, strValue, size, color)
for _, value in pairs(strValue.strValues) do
if value ==