在3.2rc0的版本时,为了将子场景的数据回传给主场景。我在跳转场景时
auto index=(towerMenu*)scene->getChildren().at(0);
index->getre=CC_CALLBACK_1(TDScene::readVelue,this);
这样将主场景函数readVelue()与子场景函数getre()绑定。子场景中用std::function<void(int)> getre;声明。
如此在子场景中能执行主场景的函数实现数据交互。
在3.4版本中我如法炮制了这个方法却报错,今天试了3.5也不行。我怕是我写错了,于是拿以前3.2顺利运行的代码在3.5里面跑发现依然出错。
错误位置是在子场景中执行getre函数时发生强制中断
错误信息是
Unhandled exception at at 0x758D969B in te1.exe: Microsoft C++ exception: std::bad_function_call at memory location 0x001BF1A0.
在functional文件的515行处强制中断
_VARIADIC_EXPAND_P1_1(_CLASS_FUNC_CLASS_1, , , , )
我已经不知道怎么办了,请帮帮我。
如果有别的方法也可以告诉我。我的目的是点击主场景弹出子场景(我这里是在主场景上再加了个图层),根据在子场景里的动作主场景显示不同的精灵。