至于绑定所需要的环境,自己百度,文章最后提供部分环境依赖

D:\CocosCreator 为Cocos Creator安装目录

  • 在D:\CocosCreator\resources\cocos2d-x目录下创建一个custom文件夹

  • 在custom文件夹下创建W5.h文件

#ifndef __W5__CLASS
#define __W5__CLASS
#include "cocos2d.h"class W5 {public:static void log();
};
#endif
  • 在custom文件夹下创建W5.cpp文件
#include "W5.h"void W5::log() {CCLOG("===========================");
}
  • 在D:\CocosCreator\resources\cocos2d-x\tools\tojs文件夹下创建w5.ini文件
# 模块名称
[w5]# 绑定回调函数的前缀,也是生成的自动绑定文件的前缀
prefix = w5# 绑定的类挂载在 JS 中的哪个对象中,类似命名空间
target_namespace =# 自动绑定工具基于 Android 编译环境,此处配置 Android 头文件搜索路径
android_headers = -I%(androidndkdir)s/platforms/android-14/arch-arm/usr/include -I%(androidndkdir)s/sources/cxx-stl/gnu-libstdc++/4.8/libs/armeabi-v7a/include -I%(androidndkdir)s/sources/cxx-stl/gnu-libstdc++/4.8/include -I%(androidndkdir)s/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi-v7a/include -I%(androidndkdir)s/sources/cxx-stl/gnu-libstdc++/4.9/include# 配置 Android 编译参数
android_flags = -D_SIZE_T_DEFINED_# 配置 clang 头文件搜索路径
clang_headers = -I%(clangllvmdir)s/%(clang_include)s# 配置 clang 编译参数
clang_flags = -nostdinc -x c++ -std=c++11 -U __SSE__# 配置引擎的头文件搜索路径
cocos_headers = -I%(cocosdir)s/cocos -I%(cocosdir)s/cocos/platform/android -I%(cocosdir)s/external/sources# 配置引擎编译参数
cocos_flags = -DANDROID -DCOCOS2D_JAVASCRIPT# 配置额外的编译参数ok
extra_arguments = %(android_headers)s %(clang_headers)s %(cocos_headers)s %(android_flags)s %(clang_flags)s %(cocos_flags)s %(extra_flags)s# 需要自动绑定工具解析哪些头文件ok 等待修改
headers = %(cocosdir)s/custom/W5.h# 在生成的绑定代码中,重命名头文件
replace_headers=# 需要绑定哪些类,可以使用正则表达式,以空格为间隔
classes = W5.*# 哪些类需要在 JS 层通过 cc.Class.extend,以空格为间隔
classes_need_extend = # 需要为哪些类绑定属性,以逗号为间隔
field = # 需要忽略绑定哪些类,以逗号为间隔
skip = # 重命名函数,以逗号为间隔
rename_functions = # 重命名类,以逗号为间隔
rename_classes = # 配置哪些类不需要搜索其父类
classes_have_no_parents = # 配置哪些父类需要被忽略
base_classes_to_skip =# 配置哪些类是抽象类,抽象类没有构造函数,即在 js 层无法通过 var a = new SomeClass();的方式构造 JS 对象
abstract_classes = # 配置哪些类是始终以一个实例的方式存在的,游戏运行过程中不会被销毁
persistent_classes = # 配置哪些类是需要由 CPP 对象来控制 JS 对象生命周期的,未配置的类,默认采用 JS 控制 CPP 对象生命周期
classes_owned_by_cpp =remove_prefix=
script_control_cpp = no
  • 复制一份genbindings.py 重命名为custom.py编辑部分内容

custom.py
170行左右

cmd_args = {'cocos2dx.ini' : ('cocos2d-x', 'jsb_cocos2dx_auto'), \'cocos2dx_audioengine.ini' : ('cocos2dx_audioengine', 'jsb_cocos2dx_audioengine_auto'), \'cocos2dx_network.ini' : ('cocos2dx_network', 'jsb_cocos2dx_network_auto'), \'cocos2dx_extension.ini' : ('cocos2dx_extension', 'jsb_cocos2dx_extension_auto'), \'cocos2dx_ui.ini' : ('cocos2dx_ui', 'jsb_cocos2dx_ui_auto'), \'cocos2dx_spine.ini' : ('cocos2dx_spine', 'jsb_cocos2dx_spine_auto'), \'cocos2dx_dragonbones.ini' : ('cocos2dx_dragonbones', 'jsb_cocos2dx_dragonbones_auto'), \'cocos2dx_experimental_webView.ini' : ('cocos2dx_experimental_webView', 'jsb_cocos2dx_experimental_webView_auto'), \'cocos2dx_experimental_video.ini' : ('cocos2dx_experimental_video', 'jsb_cocos2dx_experimental_video_auto'), \'creator.ini': ('creator', 'jsb_creator_auto'),'creator_camera.ini': ('creator', 'jsb_creator_camera_auto'),'creator_graphics.ini': ('creator', 'jsb_creator_graphics_auto'),'creator_physics.ini': ('creator', 'jsb_creator_physics_auto'),'box2d.ini' : ('box2d', 'jsb_box2d_auto'),'anysdk-common.ini': ('protocols', 'jsb_anysdk_protocols_auto'),'anysdk-appstore.ini': ('protocols', 'jsb_anysdk_protocols_auto'),
}

改成

cmd_args = {'w5.ini' : ('w5', 'jsb_w5_custom'),
}
  • win+R输入cmd回车,把custom.py拖到dos窗口回车。。。。。出现如下
D:\CocosCreator\resources\cocos2d-x\tools\tojs>D:\CocosCreator\resources\cocos2d
-x\tools\tojs\custom.py
PYTHON_BIN not defined, use current python.
generating userconf.ini...
Generating bindings for w5...
Using userconfig[('androidndkdir', 'D:\\ndkr14'), ('clangllvmdir', 'D:\\ndkr14\\toolchains\\ll
vm\\prebuilt\\windows-x86_64'), ('creatordir', 'D:\\CocosCreator\\resources\\coc
os2d-x\\cocos\\editor-support\\creator'), ('cocosdir', 'D:\\CocosCreator\\resour
ces\\cocos2d-x'), ('anysdk_common_dir', 'D:\\CocosCreator\\resources\\cocos2d-x\
\external\\ios\\include\\anysdk\\common'), ('anysdk_appstore_dir', 'D:\\CocosCre
ator\\resources\\cocos2d-x\\external\\ios\\include\\anysdk\\appstore'), ('jsbdir
', 'D:\\CocosCreator\\resources\\cocos2d-x\\cocos\\scripting\\js-bindings'), ('c
xxgeneratordir', 'D:\\CocosCreator\\resources\\cocos2d-x\\tools\\bindings-genera
tor'), ('extra_flags', '-D__WCHAR_MAX__=0x7fffffff -U__MINGW32__'), ('clang_incl
ude', 'lib64/clang/3.8/include')].... Generating bindings for target spidermonkey.... .... Processing section w5>>> parse_header: D:\CocosCreator\resources\cocos2d-x/custom/W5.h
----------------------------------------
Generating javascript bindings succeeds.
----------------------------------------D:\CocosCreator\resources\cocos2d-x\tools\tojs>

Generating javascript bindings succeeds.代表成功了

  • 打开win32项目工程,把D:\CocosCreator\resources\cocos2d-x\cocos\scripting\js-bindings\auto下的jsb_w5_custom.cpp和jsb_w5_custom.hpp拖到libjscocos2d->auto中

  • 打开ibjscocos2d->manual->jsb_module_register.cpp

找到
#include "cocos/scripting/js-bindings/auto/jsb_cocos2dx_network_auto.hpp"
#include "cocos/scripting/js-bindings/auto/jsb_creator_auto.hpp"// 添加下面这行代码
#include "cocos/scripting/js-bindings/auto/jsb_w5_custom.hpp"找到
se->addRegisterCallback(register_all_cocos2dx_extension);
se->addRegisterCallback(register_all_cocos2dx_extension_manual);// 添加下面这行代码
se->addRegisterCallback(register_all_w5);
  • libjscocos2d项目右键属性—配置属性 => c/c++ 右面窗口附加包含目录选项中添加D:\CocosCreator\resources\cocos2d-x\custom目录

  • 然后在主工程中的Classes中拖入D:\CocosCreator\resources\cocos2d-x\custom下的W5.h和W5.cpp

  • 在js文件中添加

onLoad() {W5.log();
}
  • 在Visiual Stuido中运行项目

在输出窗口你会看到打印的消息
===========================

绑定成功~~~

部分依赖
https://download.csdn.net/download/u013791665/10596052

Cocos Creator JSB绑定相关推荐

  1. java中JSB_深入解析Cocos Creator JSB绑定原理以及应用实践

    背景 一直以来,ABCmouse 项目中的整体 JS/Native 通信调用结构都是基于 callStaticMethod evalString 的方式.通过 callStaticMethod 方法我 ...

  2. Cocos Creator JSB绑定 MAC系统环境

    编译环境 python2.7(mac自带) 1.安装PyYAML mac: sudo easy_install pyyaml win: pip install pyyaml 2.安装Cheetah 下 ...

  3. Cocos Creator JSB [Lv.1] (1)

    目录 摘要 系列文章 JSB能做什么 环境 资源 准备工作 正式开始 对工程做一些修改 如何互动 小姐姐现身 与小姐姐互动的桥梁 找到小姐姐 划重点 摘要 本系列文章主要实操JSB的手动绑定,在官方教 ...

  4. Cocos Creator JSB [Lv.1] (3)

    目录 摘要 系列文章 正式开始 准备礼物 怎么送 送礼物 seval_to_Gift 最终效果 在 Android 平台测试 划重点 摘要 承接上文 Cocos Creator JSB [Lv.1] ...

  5. Cocos Creator jsb手动绑定C++

    使用的是cocos creator 2.4.3版本:直接贴代码,结构如下: 在CocosDashboard\resources.editors\Creator\2.4.3\resources\coco ...

  6. Cocos Creator JSB [Lv.2] TODO

    目录 摘要 环境 资源 并未正式开始 思路 问题 参考 摘要 本文本来是想介绍JSB自动绑定,但在为自动绑定工具搭建运行环境时,发现对运行环境的要求有些苛刻.python,yaml,cheetah都需 ...

  7. Cocos Creator JSB [Lv.3]

    目录 摘要 资源 正式开始 为什么要使用`JSB` `JSB`能做什么 进行`JSB`绑定需要做什么 构建工程 创建类 绑定(搭建桥梁) 实现自定义的类型转换(非必须) 注册 将新增的文件加入`lib ...

  8. Cocos Creator 预制的使用模板(一般用于UI)

    Cocos Creator里绑定properties @property(cc.Prefab)XXUIPrefab: cc.Prefab = null; 在预制上挂脚本 import { Consta ...

  9. cocos creator jsb2.0手动绑定过程

    在打包原生包的时候js层想调用c++层,但是没有对应的实现需要自己扩展自己的jsb,官方有两种绑定方式:手动绑定和自动绑定,这里着重介绍手动绑定: 首先找到cocos creator自带的c++层的源 ...

最新文章

  1. vue-cli3 第三版安装搭建项目
  2. VMware ESXi客户端连接控制台时提示“VMRC控制台连接已断开...正在尝试重新连接“的解决方法
  3. mysql查询每个id的前10条数据_解决 MySQL 比如我要拉取一个消息表中用户id为1的前10条最新数据...
  4. Lua 调试(Debug)
  5. linux 创建用户和修改新增用户默认的家目录
  6. 这篇带你深入理解SpringBoot中的自动装配(好文精读)
  7. 剑指offer:数据流中的中位数(小顶堆+大顶堆)
  8. Kubernetes部分Volume类型介绍及yaml示例
  9. python遍历json_Python学习笔记:Python3中Json数据遍历取指定值
  10. 立志欲坚不欲锐 - 2019 年小结
  11. python编写程序、一个富翁与陌生人做交易_智慧职教云课堂Python程序设计(常州工业职业技术学院)题目答案...
  12. js获取某月的天数以及某天的前一个日期和后一天日期
  13. IOS UIKit基础控件的使用
  14. GoogleChrome与Firefox的那些事
  15. VMware+CentOS7搭建私有云桌面服务
  16. python3 科学计算_python3 科学计算之pandas入门(三)
  17. 《面向对话的融入交互信息的实体关系抽取》--中文信息学报
  18. mysql数据自增ID为2的解决办法
  19. AutoCAD 插件开发之学习资料
  20. 关于安装openSSL

热门文章

  1. 计算机图形学 画三角形、圆等(入门代码)
  2. 编程语言中的超级英雄们
  3. [java面试]宇信易诚 广州分公司 java笔试题目回顾录
  4. 数据结构与算法(陈越)(学习笔记)(更新ing)
  5. 小米4硬改教程_小米手环3系列更换表盘教程
  6. 【论文笔记】光学三维显微测量,条纹投影,多视点,系统标定,主动型标靶《基于条纹投影的多视点三维显微测量系统研究》(王猛)
  7. X头域解析 【转】
  8. 经典句子5000(二)
  9. 2019年的春节档堪称火热,各种大片扎堆
  10. Description Type Target runtime Apache Tomcat v8.5 is not defined.