Cocos2dx: CheckBox над PageView не трогать

Сначала я добавил PageView к сцене, затем добавил CheckBox. Теперь я не могу нажать CheckBox. Прикосновения переходит к просмотру страницы. Как решить эту проблему?

COCOS2D_VERSION 0x00031501

Вот мой код:

bool FOURScrollPageScene::init()
{
    // 1. super init first
    if ( !Scene::init() )
    {
        return false;
    }

    createpageView();

    CreateCheckBox();


    return true;
}

void FOURScrollPageScene::createpageView()
{
    Size size(SW, SH);
    mPageView = PageView::create();
    mPageView->setDirection(PageView::Direction::HORIZONTAL);
    mPageView->setContentSize(size);

    mPageView->setPosition(Vec2(0.0f, 0.0f));
    mPageView->removeAllItems();
    mPageView->setIndicatorEnabled(true);
    mPageView->setGlobalZOrder(1);

    int pageCount = 3;
    for (int i = 0; i < pageCount; ++i)
    {
        Layout* layout = Layout::create();
        layout->setContentSize(size);

        auto logo = Sprite::create("MainMenu_Top.png") ;
        logo->setPosition(Vec2(SW*0.5f,SH*0.5));

        layout->addChild(logo, 1);


        Text* label = Text::create(StringUtils::format("page %d",(i+1)), "fonts/avenir-next-bold.ttf", 30);
        label->setColor(Color3B(192, 192, 192));
        label->setPosition(Vec2(layout->getContentSize().width / 2.0f, layout->getContentSize().height / 2.0f));
        layout->addChild(label);

        mPageView->insertCustomItem(layout, i);
    }

//    mPageView->scrollToItem(2);
    mPageView->scrollToPage(1);

    mPageView->addEventListenerPageView(this, pagevieweventselector(FOURScrollPageScene::pageViewEvent));

    this->addChild(mPageView);
}

void FOURScrollPageScene::CreateCheckBox()
{
    auto checkBox = CheckBox::create("check_box_normal.png",
                                 "check_box_normal_press.png",
                                 "check_box_active.png",
                                 "check_box_normal_disable.png",
                                 "check_box_active_disable.png",Widget::TextureResType::PLIST);
    checkBox->setPosition(Vec2(SW*0.5f, SH*0.3f));


    checkBox->addEventListener([&](Ref* sender, CheckBox::EventType type){
        switch (type)
        {
            case CheckBox::EventType::SELECTED:
                printf("Check Box Selected1\n");
                break;

            case CheckBox::EventType::UNSELECTED:
                printf("Check Box Unselected1\n");

                break;

            default:
                break;
        }
    });

    //checkBox->addEventListener(CC_CALLBACK_2(FOURScrollPageScene::selectedEvent, this));
    this->addChild(checkBox, 3);

}

1 ответ

Есть решение!

После комментирования под строкой сработало касание.

// mPageView->setGlobalZOrder(1);
Другие вопросы по тегам