zoukankan      html  css  js  c++  java
  • 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,把绑定在实例上面的回调函数取出来调用。


  • 相关阅读:
    MYSQL之基本操作
    Python操作Mysql之基本操作
    编辑器
    iOS项目评估报告
    mac安装as配置
    屏幕适配
    CocoaPods配置步骤
    android网络监测
    获取通讯录
    json解析
  • 原文地址:https://www.cnblogs.com/dyllove98/p/3233703.html
Copyright © 2011-2022 走看看