千家信息网

Cocos2d-x3.5下“回调特性”的实现方法是什么

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这期内容当中小编将会给大家带来有关Cocos2d-x3.5下"回调特性"的实现方法是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Cocos2d-x3.5已经发
千家信息网最后更新 2026年11月01日Cocos2d-x3.5下“回调特性”的实现方法是什么

这期内容当中小编将会给大家带来有关Cocos2d-x3.5下"回调特性"的实现方法是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

Cocos2d-x3.5已经发布了一小段时间了,细心的同学会发现这个版本增加了一个加载cocos资源的重载版本:

Node* CSLoader::createNode(const std::string &filename, const ccNodeLoadCallback &callback)

相比另一个版本,这个多了一个回调函数的参数。

框架用这个东西干了什么?

通过阅读源码可以知道,在加载完一个节点后,框架会将节点简单地回调给这个函数(除根节点外)。这样,利用这个参数,我们可以在加载资源的过程中对正在加载的节点做一些修饰处理。

这篇文章就来讲讲,怎么用这个东西来十分简便地实现此前那个有点复杂的功能:回调特性。

正文:

首先利用上边的功能,我们可以在加载时得到各个节点对象,其次我们需要获取Cocos中填写的参数。

具体是怎么获取呢?

先在CSLoader的源码找找关于回调特性的原有实现:

Widget* widget = dynamic_cast

if (widget)

{

std::string callbackName = widget->getCallbackName();

std::string callbackType = widget->getCallbackType();

bindCallback(callbackName, callbackType, widget, _rootNode);

}

以上这段代码是在CSLoader::createNode加载Widget类型节点时,针对回调特性的一些特殊处理。就是将我们在Cocos中填写的两个回调特性的字段取出来,联通widget,_rootNode传给bindCallback进行绑定。

上边的两个函数:getCallbackName,getCallbackType,取出来的就是我们在Cocos中所填写的回调参数信息。

至此填了回调特性的节点及对应的参数我们都有了。

接下来,如何实现呢?

我们可以考虑跟上述类似的做法:

CSLoader::createNode(root_path,[this](Node *node){//node既是当前加载出来的节点

Widget* widget = dynamic_cast

if (widget){

//获取回调特性相关属性的信息。

std::string callbackName = widget->getCallbackName();

std::string callbackType = widget->getCallbackType();

//根据上述信息进行绑定。

this.bindCallback(callbackName, callbackType, widget);

}

});

然后在当前类实现一个bindCallback函数,用callbackName和callbackType进行一些字符串比对操作,找到一个合适的函数,丢给widget做监听,比如:

void MyScene::bindCallback(const std::string &callbackName,const std::string &callbackType,widget){

if(callbackName == "animal1" && callbackType == "Click"){//假定有一个playAnimal1的接口

widget->addClickEventListener(CC_CALLBACK_2(MyScene::playAnimal1,this));//

}

else if(callbackName == "animal2" && callbackType == "Click"){//假定有一个playAnimal2的接口

widget->addClickEventListener(CC_CALLBACK_2(MyScene::playAnimal2,this));

}

}

1.目前为止Cocos2d-x的两大脚本引擎都没有提供对回调特性的支持,包括新重载的createNode函数,也是没有导出给两个脚本引擎使用。

但getCallbackName、getCallbackType这两个函数都是有导出的,我们可以自行遍历加载出来的根节点,利用这两个函数来获取Cocos中填写的回调特性相关信息,根据这些信息,自己进行绑定。

2.Cocos2.2开始提供了一个"用户数据"的接口,这个接口所设置的数据可以通过Cocos2d::Node::getUserData获取,配合这个东西具体能干什么,就看你的想象力了。

上述就是小编为大家分享的Cocos2d-x3.5下"回调特性"的实现方法是什么了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。

特性 节点 函数 两个 信息 参数 接口 东西 就是 版本 方法 上边 内容 功能 引擎 数据 框架 源码 篇文章 脚本 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 金融科技还是互联网 工业互联网科技新基建 金融科技创新监管互联网金融 友谊互联网络科技 互联网科技论坛 撒么互联网科技公司 太原新华互联网科技学校怎么样 蓝色互联网科技 济南和联互联网科技有限公司 北京大学互联网科技怎么样 字节跳动和互联网科技 昭通云南众福互联网科技有限公司 互联网媒体平台算高科技产业 互联网科技和法律行业 互联网科技机房 上海万顺科技互联网有限公司招聘 互联网金融运营模式中的金融科技 易租星互联网科技有限公司 互联网对科技影响 互联网科技创业有什么好项目 湖北九亚互联网络科技有限公司 疫情对互联网科技公司影响 深圳互联网科技公司 沃里互联网科技 居家互联网科技有限公司 新兴科技互联网创新大赛颁奖典礼 恒生互联网科技指数跳水 科技类公司包括互联网吗 浙南科技城互联网大厦建设工程 互联网公司属于科技吗
0