在实际工作中,有非常多地方会使用 富文本,这里仅仅介绍最简单的富文本用法:
是由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文件。没有描边、下画线、阴影、发光和文字图片的链接点击等事件。