楼主你好,
按照你的代码测试过了,没有问题。
代码如下:
CLayer1::CLayer1()
{
}
CLayer1::~CLayer1()
{
}
CLayer1* CLayer1::create()
{
CLayer1* pRet = new CLayer1();
if (pRet && pRet->init())
{
pRet->autorelease();
return pRet;
}
else
{
CC_SAFE_DELETE(pRet);
return NULL;
}
}
bool CLayer1::init()
{
if (CCLayer::init())
{
cocos2d::gui::TouchGroup* pUILayer1 = cocos2d::gui::TouchGroup::create();
addChild(pUILayer1);
cocos2d::gui::Layout* pLayout1 = dynamic_castcocos2d::gui::Layout*(GUIReader::shareReader()->widgetFromJsonFile(“cocosgui/UITest/UITest.json”));
pUILayer1->addWidget(pLayout1);
Button* left_button = static_cast<Button*>(UIHelper::seekWidgetByName(pLayout1, "left_Button"));
left_button->addTouchEventListener(this, toucheventselector(CLayer1::callback));
return true;
}
return false;
}
void CLayer1::callback(CCObject *sender, TouchEventType type)
{
CCLOG(“clayer1 button”);
}
CLayer2::CLayer2()
{
}
CLayer2::~CLayer2()
{
}
CLayer2* CLayer2::create()
{
CLayer2* pRet = new CLayer2();
if (pRet && pRet->init())
{
pRet->autorelease();
return pRet;
}
else
{
CC_SAFE_DELETE(pRet);
return NULL;
}
}
bool CLayer2::init()
{
if (CCLayer::init())
{
cocos2d::gui::TouchGroup* pUILayer2 = cocos2d::gui::TouchGroup::create();
addChild(pUILayer2);
cocos2d::gui::Layout* pLayout2 = dynamic_castcocos2d::gui::Layout*(GUIReader::shareReader()->widgetFromJsonFile(“cocosgui/UITest/UITest.json”));
pUILayer2->addWidget(pLayout2);
Button* left_button = static_cast<Button*>(UIHelper::seekWidgetByName(pLayout2, "left_Button"));
left_button->addTouchEventListener(this, toucheventselector(CLayer1::callback));
return true;
}
return false;
}
void CLayer2::callback(CCObject *sender, TouchEventType type)
{
CCLOG(“clayer2 button”);
}
CLayer3::CLayer3()
{
}
CLayer3::~CLayer3()
{
}
CLayer3* CLayer3::create()
{
CLayer3* pRet = new CLayer3();
if (pRet && pRet->init())
{
pRet->autorelease();
return pRet;
}
else
{
CC_SAFE_DELETE(pRet);
return NULL;
}
}
void CLayer3::onEnter()
{
CCLayer::onEnter();
CLayer1* pLayer1 = CLayer1::create();
CLayer2* pLayer2 = CLayer2::create();
this->addChild(pLayer1);
this->addChild(pLayer2);
pLayer2->setPosition(ccp(40, 40));
}
CCLOG(“clayer1 button”);
CCLOG(“clayer2 button”);
都可以打印出来
楼主能否给出资源,我们对楼主的资源再测试一遍