cocos2dx --- 富文字的使用 RichText
在實際工作中,有很多地方會使用 富文字,這裡只介紹最簡單的富文字使用方法:
是由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檔案,沒有描邊、下畫線、陰影、發光和文字圖片的連結點選等事件。