新人贴,想问一些关于添加回调的问题

是这样的,我参考了下官方的例子,用cocostudio编写好UI 之后导入工程,到这里还是很正常,
但是当我取出其中的子控件添加回调时就总是报错,也不明白是怎么回事,希望各位能帮忙解答
一下
CCScene* TestLayer::scene(){

CCScene* scene = CCScene::create();
TestLayer* layer = TestLayer::create();
scene->addChild(layer);

return scene;

}

bool TestLayer::init(){

bool bRet = false;
do{
TouchGroup* uilayer = TouchGroup::create();
Layout* layout = dynamic_cast<Layout*>(GUIReader::shareReader()->widgetFromJsonFile(“MaJiang2_1.json”));
//UILayer* uilayer = UILayer::create()
this->addChild(uilayer);
uilayer->addWidget(layout);

UIPanel* centerPanel = dynamic_cast<UIPanel*>(layout->getChildByName("Panel_center"));
UIButton* lianwangBtn = dynamic_cast<UIButton*>(layout->getChildByName("lianwang"));
lianwangBtn->addTouchEventListener(this,toucheventselector(TestLayer::btnPindaoCallback));
//lianwangBtn->addTouchEventListener(this,toucheventselector(TestLayer::btnPindaoCallback));
bRet = true;

}while(0);

return bRet;
}

void TestLayer::btnBackCallback(CCObject* pSender,TouchEventType type){

}

void TestLayer::btnPindaoCallback(CCObject* pSender,TouchEventType type){

CCLOG(“test”);

}

补充一下,我用的是cocos2dx 2.2.3 ,cocostudio1.3

看看你的控件取出来是不是空的~猜测你的按钮应该不是layout的子节点~

用Helper::seekWidgetByName可以无视父子关系随意获取节点

好吧,其实是可以遍历所有子节点、子节点的子节点、子节点的(省略很多字)…然后找到你要的节点

2.2的不是还是能够直接无视父子关系直接按名字取出的么?不是3.0才是只能按照父子关系取的么

好像真的是空指针了,谢谢了

哈哈,2.2的我就没用过喇~