cocos2dx一tab选项卡的实现
2014-01-13 11:29
549 查看
用CCLayerMultiplex层管理的方式实现tab选项卡,更多的使用可以查看API,看代码
新建一个CCScene场景
选项卡要显示的三个图层
打完了看看效果吧
源码下载
新建一个CCScene场景
#ifndef _TestScene_ #define _TestScene_ #include "cocos2d.h" #include "cocos-ext.h" #include "Layer1.h" #include "Layer2.h" #include "Layer3.h" #include "Layer4.h" USING_NS_CC; USING_NS_CC_EXT; class TestScene:public cocos2d::CCScene{ public: TestScene(); ~TestScene(); virtual bool init(); CREATE_FUNC(TestScene); void menuCallback(CCObject* pSender); //layer图层 Layer1* layer1; Layer2* layer2; Layer3* layer3; Layer4* layer4; cocos2d::CCLayerMultiplex* layer_mul; int curLayerPos; }; #endif
#include "TestScene.h" TestScene::TestScene(){ layer1=NULL; layer2=NULL; layer3=NULL; layer4=NULL; curLayerPos=0; } TestScene::~TestScene(){} bool TestScene::init(){ if (!CCScene::init()) { return false; } //初始化三个图层 layer1=Layer1::create(); layer2=Layer2::create(); layer3=Layer3::create(); /*layer4=Layer4::create();*/ // layer1->setTag(11); // layer2->setTag(12); // layer3->setTag(13); // layer4->setTag(14); CCSize visibleSize = CCDirector::sharedDirector()->getVisibleSize(); CCPoint origin = CCDirector::sharedDirector()->getVisibleOrigin(); layer_mul=CCLayerMultiplex::create(layer1,layer2,layer3,NULL); layer_mul->setPosition(ccp(0,50)); this->addChild(layer_mul); CCMenuItemImage *pCloseItem1 = CCMenuItemImage::create( "w_b.png", "r_b.png", this, menu_selector(TestScene::menuCallback)); CCMenuItemImage *pCloseItem2 = CCMenuItemImage::create( "r_b.png", "w_b.png", this, menu_selector(TestScene::menuCallback)); CCMenuItemImage *pCloseItem3 = CCMenuItemImage::create( "g_b.png", "r_b.png", this, menu_selector(TestScene::menuCallback)); CCMenuItemImage *pCloseItem4 = CCMenuItemImage::create( "r_b.png", "w_b.png", this, menu_selector(TestScene::menuCallback)); // create menu, it's an autorelease object pCloseItem1->setTag(0); pCloseItem2->setTag(1); pCloseItem3->setTag(2); /*pCloseItem4->setTag(3);*/ CCMenu* pMenu = CCMenu::create(pCloseItem1, pCloseItem2, pCloseItem3,NULL); pMenu->alignItemsHorizontallyWithPadding(-1); pMenu->setPosition(visibleSize.width/2,25); this->addChild(pMenu, 1); return true; } void TestScene::menuCallback(CCObject* pSender){ int item=((CCMenuItemImage*)pSender)->getTag(); if (item!=curLayerPos) { layer_mul->switchTo(item); curLayerPos=item; } }
选项卡要显示的三个图层
#ifndef _Layer1_ #define _Layer1_ #include "cocos2d.h" #include "cocos-ext.h" class Layer1:public cocos2d::CCLayer{ public: Layer1(); ~Layer1(); virtual bool init(); CREATE_FUNC(Layer1); }; #endif
#include "Layer1.h" USING_NS_CC; USING_NS_CC_EXT; using namespace cocos2d; Layer1::Layer1(){} Layer1::~Layer1(){} bool Layer1::init(){ if (!CCLayer::init()) { return false; } CCSize size=CCDirector::sharedDirector()->getVisibleSize(); CCSprite* s1=CCSprite::create("HelloWorld.png"); s1->setScale(0.5); s1->setPosition(ccp(size.width/2,size.height/2)); this->addChild(s1); // CCNode* node=CCNode::create(); // node->addChild(s1); // node->runAction(CCScaleTo::create(0.5,1.5)); return true; }
#ifndef _Layer2_ #define _Layer2_ #include "cocos2d.h" #include "cocos-ext.h" class Layer2:public cocos2d::CCLayer{ public: Layer2(); ~Layer2(); virtual bool init(); CREATE_FUNC(Layer2); }; #endif
#include "Layer2.h" USING_NS_CC; USING_NS_CC_EXT; using namespace cocos2d; Layer2::Layer2(){} Layer2::~Layer2(){} bool Layer2::init(){ if (!CCLayer::init()) { return false; } CCSize size=CCDirector::sharedDirector()->getVisibleSize(); CCSprite* s2=CCSprite::create("HelloWorld.png"); s2->setScale(0.8); s2->setPosition(ccp(size.width/2,size.height/2)); this->addChild(s2); return true; }
#ifndef _Layer3_ #define _Layer3_ #include "cocos2d.h" #include "cocos-ext.h" class Layer3:public cocos2d::CCLayer{ public: Layer3(); ~Layer3(); virtual bool init(); CREATE_FUNC(Layer3); }; #endif
#include "Layer3.h" USING_NS_CC; USING_NS_CC_EXT; using namespace cocos2d; Layer3::Layer3(){} Layer3::~Layer3(){} bool Layer3::init(){ if (!CCLayer::init()) { return false; } CCSize size=CCDirector::sharedDirector()->getVisibleSize(); CCSprite* s3=CCSprite::create("HelloWorld.png"); s3->setPosition(ccp(size.width/2,size.height/2)); this->addChild(s3); return true; }
打完了看看效果吧
源码下载
相关文章推荐
- cocos2dx Tab选项卡控件的实现
- cocos2dx用CCLayerMultiplex实现Tab选项卡
- TabLayoutBottomDemo【TabLayout实现底部选项卡】
- Android实现连续并排的若干个TextView单击改变背景颜色达到选项卡Tab栏切换效果
- jquery简单实现tab选项卡效果
- XtraTabControl(DEV中选项卡)分页实现拖拽 效果
- javascript实现Tab选项卡
- jquery实现tab标签选项卡自动切换效果
- 精通javascript笔记(智能社)——简易tab选项卡及应用面向对象方法实现
- js实现tab选项卡函数代码
- 通过实现继承TabActivity并且实现TabContentFactory的方法创建选项卡的一点心得
- 最简短的js代码实现tab选项卡效果
- js+css实现的圆角边框TAB选项卡滑动门代码分享(2款)
- js 实现tab选项卡
- 两种实现选项卡功能----自定义和TabLayout
- jQuery实现滚动切换的tab选项卡效果代码
- 自定义TabLayout,实现神奇的选项卡效果
- js简单实现竖向tab选项卡的方法
- 在bootstrop中如何使用tab选项卡 实现淡入淡出的效果
- js实现黑色简易的滑动门网页tab选项卡效果