[有图有真相]3.0rc 场景->ui->按钮, 代码绑定后,点击事件不触发

VS2012,cocostudio 1.3,cocos2d-x 3.0RC

很简单的场景
里面有一个UI
UI里面有两个按钮

现在给其中一个做事件

auto node = SceneReader::getInstance()->createNodeWithSceneFile("demoScene.json");if(node)   {             addChild(node);   }  auto child = node->getChildByTag(10006);
auto reader = (ComRender*)childReadme->getComponent("demoUI");
auto layer = (Layer*)reader ->getNode();

Widget* btnBack = (Widget*)layer->getChildByTag(5);
btnBack->addTouchEventListener(this,toucheventselector(menu::click_demo_back));

如果getChildBytag 定义为Button,编译器会报错…Widget则正常,不知道为什么

断点到btnBack这里,可以发现btnBack的_name是backButton ,应该是获取了正确的widget

声明是这样的


    void click_demo_back(cocos2d::Ref* pSender,cocos2d::ui::TouchEventType type);


实现是

void menu::click_demo_back(Ref* pSender,TouchEventType type)
{
    CCLog("back");
}


然后运行时,回调一直进不去
我直接断点到UIWidget.cpp里的
bool Widget::onTouchBegan(Touch *touch, Event *unusedEvent)
发现这个也没进…
求斑竹和各路大神帮忙哈

上个图

第二个断点进不去…
点一次按钮会触发两次第一个断点,event分别是begin和end

我出现的问题是只有一个按钮可以使用,其他的按钮都不能用,而且按下那个能用的按钮返回的事件是别的按钮的回掉时间,我的版本是 1.2 cocos2d-x是3.0rc0

目测没有发现有楼主有什么问题.
最好是提供下大段代码和UI工程

如果getChildBytag 定义为Button,编译器会报错
这个最好能把遇到的错误信息给贴出来.

to: fanrrrrrrr
建议使用1.3+3.0RC0

好的~~~~ :14:

3.X的bug太多了,我都用回2.x了

-_-# 其他就是helloworld了,已经准备用2.X试试…

建议检查一下是否正确的获取到了控件。可以尝试给按钮改变一下可见属性(如大小/位置)确保正确获取该控件。另外检查一下该控件的事件是否被其他优先级更高的控件拦截,感谢您对cocostudio的支持。