Exemplo n.º 1
0
void MainMenuLayer::PushOneLayer(CCLayer *pLayer,std::string param_1 /* = "" */,std::string param_2 /* = "" */)
{
	if (sVecLayersInQuene == 0)
	{
		sVecLayersInQuene = new std::vector<CCLayer*>();
	}
	for (std::vector<CCLayer*>::iterator iter = sVecLayersInQuene->begin();
		iter != sVecLayersInQuene->end();iter++)
	{
		CCLayer* layer = (*iter);
		if (layer == pLayer)
		{
			return ;
		}
	}
	for (std::vector<CCLayer*>::iterator iter = sVecLayersInQuene->begin();
		 iter != sVecLayersInQuene->end();iter++)
	{
		CCLayer* layer = (*iter);
		if (layer->getTag() != kCCNodeTagInvalid)
		{
			LuaTinkerManager::Get()->callLuaFunc<bool>("Script/MainMenuUILayer.lua", "HideOneLayerByTag", layer->getTag());
		}	
		layer->closeLayerCallBack();
			
	}

	MainMenuLayer * mLayer = GameManager::Get()->GetSceneLayer()->getMainMenuLayer();
	NotificationCenter::defaultCenter()->broadcast(GM_LUA_LAYER_CLOSE,mLayer,param_1,param_2);

	GameConfigFromLuaManager::Get()->PushLayerInstanceToLua(pLayer);

	sVecLayersInQuene->clear();
	sVecLayersInQuene->push_back(pLayer);
}