从场景一点击按钮切换到场景二 ,在场景二点击按钮在切换回来场景一,会出现场景一ui按钮全部失效????这是什么情况???
场景一:
void MainScene::onEnter()
{
Layer::onEnter();
Widget* mainui=cocostudio::GUIReader::getInstance()->widgetFromJsonFile(“ui/MenuUI.ExportJson”);
Layout* menuPanel=static_cast<Layout*>( Helper::seekWidgetByName(mainui, “Panel_14”));
this->addChild(menuPanel,5);
Button* start_btn=static_cast<Button*>(menuPanel->getChildByName(“start_btn”));
start_btn->addTouchEventListener(this,toucheventselector(MainScene::onTouchEvent));
Node *pGameScene = cocostudio::SceneReader::getInstance()->createNodeWithSceneFile(“publish/MainScene.json”);
this->addChild(pGameScene);
ResourceDataManager::getInstance()->loadSources();
CocosDenshion::SimpleAudioEngine::getInstance()->playBackgroundMusic(MUSIC_FILE,true);
}
void MainScene::onExit()
{
Layer::onExit();
cocostudio::SceneReader::destroyInstance();
cocostudio::GUIReader::destroyInstance();
CCLOG(“SDSADADDDDDDDDDDDDDDDDDDDDDDDDDDD”);
}
void MainScene::onTouchEvent(Ref* pSender, TouchEventType type)
{
if (type==TOUCH_EVENT_BEGAN)
{
auto scene = Scene::create();
scene->addChild(FightScene::create());
Director::getInstance()->replaceScene(TransitionFadeBL::create(.5, scene));
}
}
跳转场景二:
bool FightScene::init()
{
if (!Layer::init())
{
return false;
}
this->scheduleUpdate();
CocosDenshion::SimpleAudioEngine::getInstance()->playBackgroundMusic(MUSIC_FIGHT,true);
Node *pGameScene = cocostudio::SceneReader::getInstance()->createNodeWithSceneFile(“publish/FightScene.json”);
this->addChild(pGameScene);
GGrid* p_grid=GGrid::create();
p_grid->setPosition(50,120);
this->addChild(p_grid,1);
FightControl* fc=FightControl::getInstance();
fc->selectCall=CC_CALLBACK_1(FightScene::selectCallBack,this);
fc->setGrid(p_grid);
Widget* mainui=cocostudio::GUIReader::getInstance()->widgetFromJsonFile(“ui/FightUI.ExportJson”);
Layout* fightPanel=static_cast<Layout*>( Helper::seekWidgetByName(mainui, “Fight_Panel”));
info_view=static_cast<ImageView*>(fightPanel->getChildByName(“info_view”));
BaseBtn* go_btn=BaseBtn::createBtn(info_view->getChildByName(“go_btn”));
go_btn->doTouchEvent=CC_CALLBACK_4(FightScene::onTouchEvent,this);
this->addChild(go_btn);
fightPanel->setTouchEnabled(false);
this->addChild(fightPanel,2);
//fc->init();
return true;
}
void FightScene::onTouchEvent(TouchEventType type,Widget* target,int id,string name)
{
if (name==“go”)
{
if (type==TOUCH_EVENT_BEGAN)
{
auto scene = MainScene::createScene();
Director::getInstance()->replaceScene(TransitionFadeBL::create(.5, scene));
}
}
}
