提一个cocos2dx v3.1.1 导入 cocostudio 界面的一个bug

版本:cocos2dx v3.1.1 cocostudio 1.4.1
问题描述:2个界面,主界面先载入a.json,a上面一个按钮,点击创建一个layer,该layer载入b.json,b上面一个按钮x。点击关闭该layer。
类似于弹出框效果。
点击按钮x时,调用:

switch (type)
{
case TOUCH_EVENT_ENDED:
this->removeFromParentAndCleanup(true);
break;
}

运行时报错。
报错处为:
void Widget::releaseUpEvent()中的
(_touchEventListener->*_touchEventSelector)(this,TOUCH_EVENT_CANCELED);

现在不知道怎么在按钮相应事件里面关闭当前界面了。求大神给一个解决方案,谢谢。

你的this是一个什么对象呢?主要是干嘛的?
目前不建议在回调里删除自己,这个目前是由一个底层调整导致的,目前正在修复这个问题。
建议在底层update时调用一次retain。和autorelease。

先谢谢你的回答。
这里是做了一个弹出对话框,点击X按钮,需要关闭这个对话框,也就是从对话框的父对象删除自己。故有此逻辑代码。 反正3.1之前的版本都是没问题的。

我的this对象是Layer对象,你的意思是让修改Layer类中的update函数么?

void WinLayer::BtnCloseCallback(Ref *sender, Widget::TouchEventType type)
{

//加如下两行就不会崩溃了 现在发现就是Widget对象的回调函数会这样,看来UI的底层改动还是比较大的,希望尽快修复了。    
this->retain();
this->autorelease();

this->removeFromParentAndCleanup(true);

}

ui::Widget 实际就有相同的问题,直接手写就能出现上面的问题!~

楼主能否弄一个小demo,我看看是啥问题。