在实际工作中,有很多地方会使用 富文本,这里只介绍最简单的富文本使用方法:
是由cocostudio 提供的 RichText:
直接贴代码,再分析:
//这里测试富文本控件
ui::RichText* _richText = ui::RichText::create();
_richText->ignoreContentAdaptWithSize(false);
_richText->setSize(CCSizeMake(500, 300));
ui::RichElementText* re1 = ui::RichElementText::create(1, ccWHITE, 255, "这是白色的文字。 ", "Helvetica", 24);
ui::RichElementText* re2 = ui::RichElementText::create(2, ccYELLOW, 255, "这个就是黄色的文字了。 ", "Helvetica", 24);
ui::RichElementText* re3 = ui::RichElementText::create(3, ccBLUE, 255, "我是蓝色。", "Helvetica", 47);
ui::RichElementText* re4 = ui::RichElementText::create(4, ccGREEN, 255, "绿的在这里。 ", "Helvetica", 24);
ui::RichElementText* re5 = ui::RichElementText::create(5, ccRED, 255, "最后才轮到红色 ", "Helvetica", 24);
ui::RichElementImage* reimg = ui::RichElementImage::create(6, ccWHITE, 255, "CloseNormal.png");
cocos2d::extension::CCArmatureDataManager::sharedArmatureDataManager()->addArmatureFileInfo("cocosgui/100/100.ExportJson");
cocos2d::extension::CCArmature *pAr = cocos2d::extension::CCArmature::create("100");
pAr->getAnimation()->play("Animation1");
ui::RichElementCustomNode* recustom = ui::RichElementCustomNode::create(1, ccWHITE, 255, pAr);
ui::RichElementText* re6 = ui::RichElementText::create(7, ccORANGE, 255, "橘子橙色!! ", "Helvetica", 35);
_richText->pushBackElement(re1);
_richText->insertElement(re2, 1);
_richText->pushBackElement(re3);
_richText->pushBackElement(re4);
_richText->pushBackElement(re5);
_richText->insertElement(reimg, 2);
_richText->pushBackElement(re6);
_richText->pushBackElement(recustom);
CCSize size = CCDirector::sharedDirector()->getWinSize();
_richText->setPosition(ccp(size.width / 2, size.height / 2));
addChild(_richText);
RichText 里面可以放入 RichElement,而 RichElement有三个子类:RichElementText、RichElementImage、RichElementCustomNode
非常好理解,就是文本、图片和自定义的节点。
总结:
优点:
第三方已经实现好了,并且久经考验。RichText能显示文本、图片、和自定义的控件,并且能设置字体,字号和颜色,满足一些基本的显示功能。
缺点:
RichText 没有提供解析Html文件,没有描边、下画线、阴影、发光和文字图片的链接点击等事件。