首页 > 代码库 > cocos3——7.使用UI的RichText

cocos3——7.使用UI的RichText

1.创建

            var richText = new ccui.RichText();
            richText.ignoreContentAdaptWithSize(false);
            richText.width = 120;
            richText.height = 100;
  通过赋值width和height来设置contentSize,ignoreContentAdaptWithSize设为false来让文本按contentSize进行布局。


2.创建文本元素

static RichElementText* create(int tag, const Color3B& color, GLubyte opacity, const std::string& text, const std::string& fontName, float fontSize);
static RichElementImage* create(int tag, const Color3B& color, GLubyte opacity, const std::string& filePath);
static RichElementCustomNode* create(int tag, const Color3B& color, GLubyte opacity, Node* customNode);
  三种元素分别是文字、图片、普通节点(用普通节点就可以挂从Node派生的类)。

  tag貌似内部没有用,外部也访问不了,其他参数容易理解。

    var re1 = new ccui.RichElementText(0, cc.color.WHITE, 255, '这是白色白色白色白色白色白色', '黑体', 24);
    var re2 = new ccui.RichElementText(0, cc.color.RED, 255, '这是红色红色红色红色红色红色红色', '楷体', 24);
    var reimg = new ccui.RichElementImage(0, cc.color.WHITE, 255, 'res/pic/CloseNormal.png');
    var renode = new ccui.RichElementCustomNode(0, cc.color.WHITE, 255, new cc.Sprite('res/pic/CloseNormal.png'));

3.增删元素

    void insertElement(RichElement* element, int index);
    void pushBackElement(RichElement* element);
    void removeElement(int index);
    void removeElement(RichElement* element);

4.其他方法

    void setVerticalSpace(float space);
    virtual void setAnchorPoint(const Vec2 &pt);
    virtual Size getVirtualRendererSize() const override;
    void formatText();
    virtual void ignoreContentAdaptWithSize(bool ignore);
  getVirtualRendererSize这个js好像没有导出。

5.结果

技术分享





cocos3——7.使用UI的RichText