В Cocos2d v3.17 мы использовали приведенный ниже код для создания PageView
Size size(SW, SH);
PageView* pageView = PageView::create();
pageView->setDirection(PageView::Direction::HORIZONTAL);
pageView->setContentSize(size);
pageView->setPosition(Vec2(0.0f, 0.0f));
pageView->removeAllItems();
pageView->setIndicatorEnabled(true);
pageView->setGlobalZOrder(200);
pageView->setIndicatorIndexNodesOpacity(255);
pageView->setIndicatorPosition(Vec2(SW*0.5, SH*0.2));
this->addChild(pageView, 1);
int pageCount = 4;
for (int i = 0; i < pageCount; ++i)
{
GBMapSelectionPage *page = GBMapSelectionPage::initWithParent(this, i);
page->setContentSize(size);
pageView->insertCustomItem(page, i);
}
pageView->addEventListenerPageView(this, pagevieweventselector(GBMapScreen::pageViewEvent));
Прослушиватель событий
void GBMapScreen::pageViewEvent(Ref *pSender, PageViewEventType type)
{
switch (type)
{
case PAGEVIEW_EVENT_TURNING:
{
PageView* pageView = dynamic_cast<PageView*>(pSender);
_displayValueLabel->setString(StringUtils::format("page = %ld", static_cast<long>(pageView->getCurrentPageIndex() + 1)));
}
break;
default:
break;
}
}
В Cocos2dx v4.0 отсутствует addEventListenerPageView. Как получить делегат прокрутки страницы?