Cocos2dx 场景切换 反向传值
发布时间:2020-12-14 17:14:12 所属栏目:百科 来源:网络整理
导读:最近在学习 cocos2dx 需要在场景切换的时候传值 这方面的资料貌似很少 。大都都有错误 . 应用场景是 : A-B B-A 在 B 退回 A时并 传递参数 首先在B头文件定义 std::functionvoid(int a) func; std::functionvoid(__String * userName,__String * passWord )
最近在学习cocos2dx需要在场景切换的时候传值这方面的资料貌似很少。大都都有错误. 应用场景是: A->B B->A在B退回A时并传递参数 首先在B头文件定义
std::function<void(int a)> func; std::function<void(__String * userName,__String * passWord )> funcU; 在 A中声明并实现 void callback1(int a); void callback2(__String *userName,__String *password); void LoginLayer::callback1(int a) { log("反向传值 %d",a); } void LoginLayer::callback2(__String *userName,__String *password){ log("userName = %s n password = %s ",userName->getCString(),password->getCString()); } 在A->B时注册回调函数 auto rScene = ResigisterLayer::createScene(); ResigisterLayer *resigisterLayer = dynamic_cast<ResigisterLayer*>(rScene->getChildByTag(1)); IF_NULLPTR_LOG_ASSERT_RETURN(resigisterLayer); resigisterLayer->func = std::bind(&LoginLayer::callback1,this,std::placeholders::_1 );//绑定回调函数到子场景 resigisterLayer->funcU = std::bind(&LoginLayer::callback2,std::placeholders::_1,placeholders::_1); Director::getInstance()->pushScene(rScene); 在B 场景中调用 场景中调用 func(99); 就相当于调用的主场景的 callback1(99) 了 。 相当于调用的主场景的 callback1(98) 了 。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |