//测试只能纵向滚动 void HelloWorld::test2() { CCSize visableSize = CCSizeMake(480, 320); //屏幕大小 CCSize mysize = CCSizeMake(150,220); //容器大小 //创建容器、设置大小 CCLayerColor* scrollLayer = CCLayerColor::create( ccc4(255,255,255,255) ); scrollLayer->setContentSize(mysize); //容器中添加四个按钮 for(int i = 1; i <= 4; i++) { char file[20]; sprintf(file, "btn%d.png", i); CCSprite* btn = CCSprite::create(file); btn->setPosition( ccp(mysize.width/2, 220 - 50*i) ); scrollLayer->addChild(btn); } //创建滚动视图CCScrollView //可视区域大小150*100 、 容器为scrollLayer CCScrollView* scrollView = CCScrollView::create(CCSizeMake(150, 100), scrollLayer); scrollView->setPosition( visableSize/2 - ccp(150/2.0, 100/2.0) ); this->addChild(scrollView, 0, 2); //设置为只能纵向滚动 scrollView->setDirection(kCCScrollViewDirectionVertical); //委托代理 scrollView->setDelegate(this); }
//测试图片滚动 void HelloWorld::test1() { CCSize visableSize = CCSizeMake(480, 320); //屏幕大小 CCSize mysize = CCSizeMake(960,600); //容器大小 //创建容器、设置大小 CCLayerColor* scrollLayer = CCLayerColor::create( ccc4(255,255,255,255) ); scrollLayer->setContentSize(mysize); //容器中的东西 CCSprite* bg = CCSprite::create("war.png"); bg->setPosition( ccp(960/2.0, 600/2.0) ); scrollLayer->addChild(bg); //创建滚动视图CCScrollView CCScrollView* scrollView = CCScrollView::create(); this->addChild(scrollView, 0, 1); //属性设置 scrollView->setContainer(scrollLayer); //设置容器 scrollView->setViewSize( visableSize ); //可视区域大小 scrollView->setBounceable(true); //是否具有弹性 //委托代理 scrollView->setDelegate(this); }
bool GuideScene::init() { if (!CCLayer::init()) { return false; } CCLOG("/**~~~~~~~~~~~~~~~~GuideScene:init()~~~~~~~~~~~~~~~~~"); //取出主屏幕的尺寸,以及初始化数据 size = CCDirector::sharedDirector()->getVisibleSize(); // CCSprite* whiteBg = CCSprite::create("ZF_Shoot_whiteBg.png",CCRectMake(0,0,size.width,size.height)); // whiteBg->setPosition(ccp(size.width*0.5,size.height*0.5)); // whiteBg->setContentSize(size); // this->addChild(whiteBg,0); CCSprite* helpBg = CCSprite::create("ZF_Shoot_help.png"); helpBg->setAnchorPoint(ccp(0.5,0.5)); helpBg->setPosition(ccp(size.width*0.5,size.height*0.5)); this->addChild(helpBg,0); //1.create a container CCLayer* container = CCLayer::create(); CCSprite* guide = CCSprite::create("ZF_Shoot_guide.png"); guide->setAnchorPoint(ccp(0.5,1)); guide->setPosition(ccp(size.width*0.5,size.height)); container->addChild(guide,1); container->setContentSize(size); //2.create a scrollView CCScrollView* scrollView = CCScrollView::create(CCSizeMake(size.width*0.5, size.height*3)); addChild(scrollView); scrollView->setAnchorPoint(ccp(0.5,0.5)); scrollView->setPosition(ccp(10,size.height*0.23)); //3.setOption scrollView->setBounceable(true); scrollView->setViewSize(CCSizeMake(size.width, size.height*0.55)); scrollView->setContainer(container); scrollView->setDirection(kCCScrollViewDirectionVertical); scrollView->setTouchEnabled(true); scrollView->setDelegate(this); scrollView->unscheduleAllSelectors(); //4.closeMenu CCMenuItemImage *pCloseItem = CCMenuItemImage::create( "ZF_Shoot_button_coinList_back2.png", "ZF_Shoot_button_coinList_back1.png", this, menu_selector(GuideScene::menuCloseCallBack) ); pCloseItem->setPosition( CCPointMake(size.width*0.5-235 , size.height*0.92) ); pCloseItem->setTag(5); CCMenu* pMenu = CCMenu::create(pCloseItem, NULL); pMenu->setPosition( CCPointZero ); addChild(pMenu); return true; }
//测试背包翻页 void HelloWorld::test3() { CCSize visableSize = CCSizeMake(480, 320); //屏幕大小 CCSize mysize = CCSizeMake(300,80); //容器大小 //创建容器、设置大小 CCLayerColor* scrollLayer = CCLayerColor::create( ccc4(255,255,255,255) ); scrollLayer->setContentSize(mysize); //容器中添加三个图片 for(int i = 1; i <= 3; i++) { char file[20]; sprintf(file, "sp%d.png", i); CCSprite* sp = CCSprite::create(file); sp->setPosition( ccp(100*i - 50, 40) ); scrollLayer->addChild(sp); } //创建滚动视图CCScrollView //可视区域大小100*80 、 容器为scrollLayer CCScrollView* scrollView = CCScrollView::create(CCSizeMake(100, 80), scrollLayer); scrollView->setPosition( visableSize/2 - ccp(100/2.0, 0) ); this->addChild(scrollView, 0, 3); //属性设置 scrollView->setTouchEnabled(false); //关闭触碰事件,无法触摸滚动 //委托代理 scrollView->setDelegate(this); //创建背包翻页按钮 //前翻pBack、后翻pFront pBack = CCMenuItemImage::create("b1.png", "b2.png", "b3.png", this, menu_selector(HelloWorld::scrollImage) ); pFront = CCMenuItemImage::create("f1.png", "f2.png", "f3.png", this, menu_selector(HelloWorld::scrollImage) ); pBack->setPosition( ccp(visableSize.width/2 - 100, 60) ); pFront->setPosition( ccp(visableSize.width/2 + 100, 60) ); CCMenu* pMenu = CCMenu::create(pBack, pFront, NULL); pMenu->setPosition(CCPointZero); this->addChild(pMenu, 0, 100); pBack->setEnabled(false); pageNumber = 0; //第0页 }
static int tolua_Cocos2dx_CCScrollView_registerScriptHandler(lua_State* tolua_S) { #ifndef TOLUA_RELEASE tolua_Error tolua_err; if ( !tolua_isusertype(tolua_S,1,"CCScrollView",0,&tolua_err) || !toluafix_isfunction(tolua_S,2,"LUA_FUNCTION",0,&tolua_err) || !tolua_isnumber(tolua_S, 3, 0, &tolua_err) || !tolua_isnoobj(tolua_S,4,&tolua_err) ) goto tolua_lerror; else #endif { CCScrollView* self = (CCScrollView*) tolua_tousertype(tolua_S,1,0); #ifndef TOLUA_RELEASE if (!self) tolua_error(tolua_S,"invalid 'self' in function 'registerScriptHandler'", NULL); #endif if (NULL == self->getDelegate()) { LuaScrollViewDelegate* delegate = new LuaScrollViewDelegate(); if (NULL == delegate) return 0; self->setUserObject(delegate); self->setDelegate(delegate); delegate->release(); } LUA_FUNCTION nFunID = ( toluafix_ref_function(tolua_S,2,0)); int scriptHandlerType = ((int) tolua_tonumber(tolua_S,3,0)); self->registerScriptHandler(nFunID,scriptHandlerType); } return 0; #ifndef TOLUA_RELEASE tolua_lerror: tolua_error(tolua_S,"#ferror in function 'registerScriptHandler'.",&tolua_err); return 0; #endif }
void CCScrollViewCreator::endNode(CCNode* pNode) { CCScrollView* pScrollView = (CCScrollView* )pNode; pScrollView->setDelegate(dynamic_cast<CCScrollViewDelegate*>(mRootDelegate)); CCNodeCreator::setAttribute(pNode); }
void RankScene::rankListDraw(int _tibaoType){ tableIndex = 1; //1.主框体底板 CCSprite* ranklistTable = CCSprite::createWithSpriteFrameName("ranklistTable.png"); ranklistTable->setPosition(ccp(size.width/2, size.height/2+winDif*alpha*alpha)); layerToRoll->addChild(ranklistTable,1); //2.两个模式的排行榜按钮 CCSprite* RankListTitle = CCSprite::createWithSpriteFrameName("RankListTitle.png"); RankListTitle->setPosition(ccp(size.width/2,size.height*1605/1700+winDif*alpha*alpha)); layerToRoll->addChild(RankListTitle,4,9); //3.下面四个按钮 CCSprite* backButtonSprite = CCSprite::createWithSpriteFrameName("back_rank.png"); CCSprite* backButtonSprite_s = CCSprite::createWithSpriteFrameName("back-s_rank.png"); CCSprite* inviteButtonSprite = CCSprite::createWithSpriteFrameName("invite_rank.png"); CCSprite* inviteButtonSprite_s = CCSprite::createWithSpriteFrameName("invite-s_rank.png"); CCSprite* shareButtonSprite = CCSprite::createWithSpriteFrameName("shareButton_rank.png"); CCSprite* shareButtonSprite_s = CCSprite::createWithSpriteFrameName("shareButton-s_rank.png"); CCSprite* ListListButtonSprite = CCSprite::createWithSpriteFrameName("ListListButton.png"); CCSprite* ListListButtonSprite_s = CCSprite::createWithSpriteFrameName("ListListButton-s.png"); CCMenuItemSprite* backButton = CCMenuItemSprite::create(backButtonSprite,backButtonSprite_s,this,menu_selector(RankScene::backToTibaoSelection)); CCMenuItemSprite* inviteButton = CCMenuItemSprite::create(inviteButtonSprite,inviteButtonSprite_s,this,menu_selector(RankScene::inviteFriends)); CCMenuItemSprite* shareButton = CCMenuItemSprite::create(shareButtonSprite,shareButtonSprite_s,this,menu_selector(RankScene::shareRank)); CCMenuItemSprite* ListListButton = CCMenuItemSprite::create(ListListButtonSprite,ListListButtonSprite_s,this,menu_selector(RankScene::goToRankListList)); backButton->setPosition(ccp(size.width*111/700,size.height*1017/2200+winDif*alpha*alpha)); inviteButton->setPosition(ccp(size.width*272/700, size.height*1017/2200+winDif*alpha*alpha)); shareButton->setPosition(ccp(size.width*430/700, size.height*1017/2200+winDif*alpha*alpha)); ListListButton->setPosition(ccp(size.width*589/700, size.height*1017/2200+winDif*alpha*alpha)); backButton->setTag(11); inviteButton->setTag(12); shareButton->setTag(13); ListListButton->setTag(14); bottomMenu = CCMenu::create(backButton,inviteButton,shareButton,ListListButton,NULL); bottomMenu->setPosition(CCPointZero); layerToRoll->addChild(bottomMenu,3,10); //4.上面的遮罩板 CCSprite* rankListCover = CCSprite::createWithSpriteFrameName("rankListCover.png"); rankListCover->setPosition(ccp(size.width*249/500,size.height*327/360+winDif*alpha*alpha)); layerToRoll->addChild(rankListCover,3); //5.几天后结算 daysLeftLabel = CCLabelTTF::create("0天 后结算本周排名", "Arial Rounded", 17); daysLeftLabel->setPosition(ccp(size.width/2, size.height*320/360+winDif*alpha*alpha)); layerToRoll->addChild(daysLeftLabel,4,16); //6.题包名称 CCLabelBMFont* rankName = CCLabelBMFont::create(tibaoName[_tibaoType].c_str(), "puzzlename_list2.fnt"); rankName->setScale(0.417); rankName->setPosition(ccp(size.width/2, size.height*1710/1800+winDif*alpha*alpha)); layerToRoll->addChild(rankName,5,15); //7.设置scrollview ContainerLayer = CCLayerColor::create(ccc4(0,0,0,0)); ContainerLayer->setContentSize(CCSizeMake(size.width, size.height*2.14)); ContainerLayer->setPosition(ccp(0,-size.height*1.675+winDif/130*alpha)); //8. 1-21名的格子 for(int i = 0 ; i < 20 ; i++){ CCSprite* RankTable = CCSprite::createWithSpriteFrameName("other_rank.png"); RankTable->setPosition(ccp(size.width/2, size.height*2230/1120-size.height*i*63/660+winDif/130*alpha)); ContainerLayer->addChild(RankTable,1,20+i); } //9.初始化scrollview CCScrollView* pScrollView = CCScrollView::create(CCSizeMake(size.width, size.height*358/768)); pScrollView->setPosition(ccp(0, size.height/2+winDif*alpha*alpha)); layerToRoll->addChild(pScrollView,1,999); pScrollView->isDragging(); pScrollView->isTouchMoved(); pScrollView->setBounceable(true); pScrollView->setContainer(ContainerLayer); pScrollView->getViewSize(); pScrollView->updateInset(); pScrollView->setTouchEnabled(true); pScrollView->setDelegate(this); pScrollView->setDirection(kCCScrollViewDirectionVertical); }