コード例 #1
0
//------------------------------------------------------------------
//
// Rich Label
//
//------------------------------------------------------------------
void CommonRichLabel::onEnter()
{
    CommonDemo::onEnter();
	
	setOpacity(255);
	setColor(ccRED);
	
    CCSize visibleSize = CCDirector::sharedDirector()->getVisibleSize();
	CCPoint origin = CCDirector::sharedDirector()->getVisibleOrigin();
	
    // English, Chinese, color, font, overall test
	CCRichLabelTTF* label = CCRichLabelTTF::create("H[color=ff00ff00][i][b][u]e我[/u][/b][/i][/color]llo [size=20][font=font/Arial Rounded MT Bold.ttf][color=ffffffff]W[/color]orld![/font][/size]",
                                                   "Helvetica",
                                                   30);
	label->enableStroke(ccBLUE, 0.5f);
	label->setPosition(ccp(origin.x + visibleSize.width / 2,
						   origin.y + visibleSize.height / 5));
	label->enableShadow(CCSizeMake(-10, -10), 0xafffff00, 4);
	label->setFontFillColor(ccc3(179, 179, 179));
	addChild(label);
    
    // image tag test
    // text and other tags between image tag will be ignored
    // if image path starts with '/', we treat it like an external image. In iOS, it will be mapped to ~/Documents
    label = CCRichLabelTTF::create("Hello, [image=Images/a.png w=64 h=32 offsety=-32]blo[i]c[/i]ks[/image], [u]Gross[image= w=32 h=48]grossini[/image]ini[/u]\nThis is second line",
                                   "Helvetica",
                                   20);
	label->setPosition(ccp(origin.x + visibleSize.width / 2,
						   origin.y + visibleSize.height * 2 / 5));
	addChild(label);
	
	// now create a grossini in placeholder place and move it
	CCRect r = label->getImageBound(1);
	CCSprite* g = CCSprite::create("Images/grossini.png");
	g->setScale(r.size.width / g->getContentSize().width);
	g->setScale(r.size.height / g->getContentSize().height);
	g->setAnchorPoint(CCPointZero);
	g->setPosition(r.origin);
	label->addChild(g);
	g->runAction(CCRepeatForever::create(CCSequence::create(CCMoveBy::create(0.5f, ccp(0, 10)),
															CCMoveBy::create(0.5f, ccp(0, -10)),
															NULL)));
    
    // font tag test
    label = CCRichLabelTTF::create("H[i][b][u]ell[/u][/b][/i]o[size=20][font=font/Arial Rounded MT Bold.ttf]H[i]ell[/i]o[/font][/size]",
                                   "Helvetica",
                                   30);
    label->setColor(ccc4(0, 0, 255, 255), ccc4(0, 255, 0, 255), ccp(1, 0));
	label->setPosition(ccp(origin.x + visibleSize.width / 2,
						   origin.y + visibleSize.height * 3 / 5));
	addChild(label);
}
コード例 #2
0
CCRichLabelTTF* CCRichLabelTTF::create(const char *string, const char *fontName, float fontSize,
                               const CCSize &dimensions, CCTextAlignment hAlignment,
                               CCVerticalTextAlignment vAlignment)
{
    CCRichLabelTTF *pRet = new CCRichLabelTTF();
    if(pRet && pRet->initWithString(string, fontName, fontSize, dimensions, hAlignment, vAlignment))
    {
        pRet->autorelease();
        return pRet;
    }
    CC_SAFE_DELETE(pRet);
    return NULL;
}
コード例 #3
0
CCRichLabelTTF * CCRichLabelTTF::create()
{
    CCRichLabelTTF * pRet = new CCRichLabelTTF();
    if (pRet && pRet->init())
    {
        pRet->autorelease();
    }
    else
    {
        CC_SAFE_DELETE(pRet);
    }
    return pRet;
}
コード例 #4
0
//------------------------------------------------------------------
//
// Rich Label
//
//------------------------------------------------------------------
void CommonRichLabel::onEnter()
{
    CommonDemo::onEnter();
	
	setOpacity(255);
	setColor(ccRED);
	
    CCSize visibleSize = CCDirector::sharedDirector()->getVisibleSize();
	CCPoint origin = CCDirector::sharedDirector()->getVisibleOrigin();
	
	CCRichLabelTTF* label = CCRichLabelTTF::create("H[color=ff00ff00]e我[/color]llo [color=ffffffff]W[/color]orld!",
                                                   "Helvetica",
                                                   30);
	label->enableStroke(ccBLUE, 0.5f);
	label->setPosition(ccp(origin.x + visibleSize.width / 2,
						   origin.y + visibleSize.height / 5));
	label->enableShadow(CCSizeMake(-10, -10), 0xafffff00, 4);
	label->setFontFillColor(ccc3(179, 179, 179));
	addChild(label);
    
    label = CCRichLabelTTF::create("H[color=ff00ff00][i][b][u]ell[/u][/b][/i][/color]o[size=20][font=font/Arial Rounded MT Bold.ttf]H[i]ell[/i]o[/font][/size]",
                                   "Helvetica",
                                   30);
	label->setPosition(ccp(origin.x + visibleSize.width / 2,
						   origin.y + visibleSize.height * 2 / 5));
	addChild(label);
    
    label = CCRichLabelTTF::create("H[i][b][u]ell[/u][/b][/i]o[size=20][font=font/Arial Rounded MT Bold.ttf]H[i]ell[/i]o[/font][/size]",
                                   "Helvetica",
                                   30);
    label->setColor(ccc4(0, 0, 255, 255), ccc4(0, 255, 0, 255), ccp(1, 0));
	label->setPosition(ccp(origin.x + visibleSize.width / 2,
						   origin.y + visibleSize.height * 3 / 5));
	addChild(label);
}
コード例 #5
0
//------------------------------------------------------------------
//
// Rich Label (Link Tag)
//
//------------------------------------------------------------------
void CommonRichLabel2::onEnter()
{
    CommonDemo::onEnter();
	
	setOpacity(255);
	setColor(ccRED);
	
    CCSize visibleSize = CCDirector::sharedDirector()->getVisibleSize();
	CCPoint origin = CCDirector::sharedDirector()->getVisibleOrigin();
	
    // label 1
	CCRichLabelTTF* label = CCRichLabelTTF::create("This label has a [color=ff0000ff][link bg=3f7f7f7f bg_click=9fffff00]clickable[/link][/color] link, great!",
                                                   "Helvetica",
                                                   20);
	label->setPosition(ccp(origin.x + visibleSize.width / 2,
						   origin.y + visibleSize.height / 5));
	label->setLinkTarget(0, CCCallFunc::create(this, callfunc_selector(CommonRichLabel2::onLinkClicked)));
	addChild(label);
    
    // measure api demo
    CCLOG("label content: %f, %f", label->getContentSize().width, label->getContentSize().height);
    CCSize s = CCUtils::measureRichString("This label has a [color=ff0000ff][link bg=3f7f7f7f bg_click=9fffff00]clickable[/link][/color] link, great!",
                                          "Helvetica",
                                          20);
    CCLOG("measure: %f, %f", s.width, s.height);
	
    // label 2
	label = CCRichLabelTTF::create("Wow! Image[link bg=3f7f7f7f bg_click=9f00ff00] [image=Images/a.png scale=2]\ufffc[/image] [/link]can also be linked!",
                                   "Helvetica",
                                   24);
	label->setPosition(ccp(origin.x + visibleSize.width / 2,
						   origin.y + visibleSize.height * 2 / 5));
	label->setLinkTarget(0, CCCallFunc::create(this, callfunc_selector(CommonRichLabel2::onLinkClicked)));
	addChild(label);
	
    // label 3
	label = CCRichLabelTTF::create("Link works fine even in [color=ff0000ff][link bg=3f7f7f7f bg_click=9f00ff00]line\nbreak![/link][/color] That's incredible!",
                                                   "Helvetica",
                                                   20);
	label->setPosition(ccp(origin.x + visibleSize.width / 2,
						   origin.y + visibleSize.height * 3 / 5));
	label->setLinkTarget(0, CCCallFunc::create(this, callfunc_selector(CommonRichLabel2::onLinkClicked)));
	label->enableShadow(CCSizeMake(-10, -10), 0xafffff00, 4);
	addChild(label);
}