最近研究lua,并且使用lua写cocos游戏,碰到了一个小需求,就是提示信息的展示,并且还是那种需要样式。那么第一想到的就是富文本,正巧cocos提供了相应的类——RichText,有一点想要吐槽的是,为什么有选定删除某一个Element,却没有直接清除?

如下写法是自定义一个RichText,在设置好了后便加入table中。

        local label = ccui.Text:create()
        label:setString(str)

        local label1 = ccui.Text:create()
        label1:setString(str1)

        local richText = ccui.RichText:create()
        richText:setSize(CCSizeMake(300, 30))
        richText:setAnchorPoint(0.5,0.5)
        richText:setVisible(true)
        richText:setPosition(300,300)
        richText:formatText()
        richText:ignoreContentAdaptWithSize(true)
        self.NoteTopUI:addChild(richText)
        richText:pushBackElement(ccui.RichElementCustomNode:create(0,MSGSHOW_COLOR[4],255,label))
        richText:pushBackElement(ccui.RichElementCustomNode:create(0,ItemQuality[gdItems[id].color],255,label1))
       table.insert(youtablename, richtext)

此后调用的话,除了直接从table中索引而出外,还需要做一些额外的操作:

 self.NoteTopN[i].str:setVisible(true)
 self.NoteTopN[i].str:ignoreContentAdaptWithSize(true)
 self.NoteTopN[i].str:formatText()

其中formatText是最重要的一个操作,可以研究一下cocos的api文档,官网给出的是重新排列内部元素。