CCScrollView可以实现一个滚动的菜单,上下滚动还是左右滚动需要自己来设置。
一般用在游戏的关卡选择中。
CCScrollView中创建函数如下:
static CCScrollView* create(CCSize size, CCNode* container = NULL);
static CCScrollView* create();
两个create都可以创建CCScrollView,不过通过第二个来创建CCScrollView之后需要手动设置滚动窗口的可视窗口大小。
setContainer用来添加container。
setViewSize用来添加可视窗口大小。
container可以是CCLayer或者CCNode对象,用来存放CCScrollView中的内容。
(一)实例一:CCScrollView中添加CCNode
CCSize winSize = CCDirector::sharedDirector()->getWinSize();
CCNode* node = CCNode::create();
for (int i = 0; i < 5; i++)
{
CCSprite* sprite = CCSprite::create("HelloWorld.png");
node->addChild(sprite);
sprite->setPosition(ccp(winSize.width / 2 + i*winSize.width, winSize.height / 2));
}
CCScrollView* scrollView = CCScrollView::create(winSize, node);
addChild(scrollView);
// 设置水平方向滚动
scrollView->setDirection(kCCScrollViewDirectionHorizontal);
// 设置CCScrollView的大小
scrollView->setContentSize(CCSize(winSize.width * 5, winSize.height));
// 去掉ScrollView的弹性功能
scrollView->setBounceable(false);
上面的例子中通过CCNode来创建CCScrollView;
首先创建CCNode对象,之后向CCNode中添加精灵,并设置好精灵的位置;
然后把CCNode对象添加到CCScrollView中;
通过setDirection设置CCScrollView滚动方式,水平还是垂直;垂直:kCCScrollViewDirectionVertical 水平:kCCScrollViewDirectionHorizontal
通过setContentSize设置CCScrollView的大小,包含精灵后的总大小;
setBounceable可以用来去掉CCScrollView的弹性。