cocos js响应过程

使用ccbi:

js加载ccbi时候,会调用CCBReader的函数readNodeGraphFromData,从根节点递归解析子节点,使用readNodeGraph函数解析单个节点。

当碰到CCMenuItem的时候,会使用CCMenuItemLoader的函数parseProperties处理节点,

节点属性有许多种,点击调用属于kCCBPropTypeBlock类型,将调用Loader的parsePropTypeBlock处理,当选择的Target是kCCBTargetTypeDocumentRoot,会将触发回调的MenuItem节点实例和回调名称存储到CCBReader的mActionManager中,并在下面使用;

jsb_cocosbuilder.js中的load函数,会在cc._Reader(对应于C++实例CCBReader)加载完成ccbi后,遍历CCReader存储的mActionManager,从而注册点击事件回调,

得到回调MenuItem节点和回调函数名称,回调节点调用setCallback,传入js函数和js控制管理器,

setCallback函数会调用C++中函数js_cocos2dx_setCallback-》bind_menu_item-》addCallBackAndThis,进而把js函数绑定在MenuItem对应得js实例上面,准备在点击时候调用。

点击MenuItem时候,调用MenuItem的函数activate,然后调用脚本管理器的executeMenuItemEvent函数,获取MenuItem对于的js实例,调用executeJSFunctionFromReservedSpot,把绑定在实例上面的回调函数取出来调用。

 

原文链接: https://www.cnblogs.com/dyllove98/p/3233703.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    cocos js响应过程

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/98270

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月10日 上午4:40
下一篇 2023年2月10日 上午4:40

相关推荐