2017-08-21 1 views
0

Ich fügte PageView zuerst zur Szene hinzu und fügte dann CheckBox hinzu. Jetzt kann ich nicht auf CheckBox klicken. Touches geht zu pageView blättern. Wie behebe ich dieses Problem?Cocos2dx: CheckBox oben PageView nicht berühren

COCOS2D_VERSION 0x00031501

Hier ist mein Code:

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); 

} 

Antwort

0

Got Lösung!

Nach dem Kommentar unter Zeile, Berührungen gearbeitet.

// mPageView->setGlobalZOrder(1);