Cocos2dx 场景切换 反向传值

来源:互联网 发布:在淘宝开网店收费吗 编辑:程序博客网 时间:2024/05/16 01:05

 

 最近在学习cocos2dx需要在场景切换的时候传值这方面的资料貌似很少。大都都有错误.


 应用场景是 A->B B->AB退回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, this,std::placeholders::_1,placeholders::_1);    Director::getInstance()->pushScene(rScene);


在B场景中调用场景中调用func(99);就相当于调用的主场景的callback1(99)相当于调用的主场景的callback1(98)




1 0
原创粉丝点击