从Cocos2D-X v2.1.4版本开始,增加了Cocos2D-console命令行工具,该工具的其中一个功能是:把.js文件转换为.jsc文件,该文件是字节码格式,可以提高代码的安全性。

使用这个工具的方式很简单。以引擎自带的TestJavaScript项目为例:

首先我们cd到Cocos2D-console的目录

goldliontekiMacBook-Pro:~ goldlion$ cd /Users/goldlion/Documents/developer/cocos2d-x-3.0beta/tools/cocos2d-console/console

然后可以看到里面有很多.py脚本

cocos2d_jscompile.py

cocos2d_version.py

cocos2d.py

cocos2d_new.py

其中cocos2d.py是我们要使用的主脚本文件。使用命令./cocos2d.py jscompile --help查看编译字节码的命令格式

goldliontekiMacBook-Pro:console goldlion$ ./cocos2d.py jscompile --help
Usage: cocos2d.py jscompile -s src_dir -d dst_dir [-c -o COMPRESSED_FILENAME -j COMPILER_CONFIG]
Options:-h, --help            show this help message and exit-s SRC_DIR_ARR, --src=SRC_DIR_ARRsource directory of js files needed to be compiled,supports mutiple source directory-d DST_DIR, --dst=DST_DIRdestination directory of js bytecode files to bestored-c, --use_closure_compilerWhether to use closure compiler to compress all jsfiles into just a big file-o COMPRESSED_FILENAME, --output_compressed_filename=COMPRESSED_FILENAMEOnly available when '-c' option was True-j COMPILER_CONFIG, --compiler_config=COMPILER_CONFIGThe configuration for closure compiler by using JSON,please refer to compiler_config_sample.json

参数非常简单,一个输入目录,一个输出目录,后面加一组可选参数。该工具在遍历.js文件时支持文件夹递归访问,在输出.jsc文件时支持按照源文件夹的结构全部新建文件夹。易用性还是不错的。

对TestJavaScript其中一个文件夹ExtensionsTest使用Cocos2D-console工具进行加密来测试。输出路径设置为桌面

./cocos2d.py jscompile -s /Users/goldlion/Documents/developer/cocos2d-x-3.0beta/samples/Javascript/Shared/tests/ExtensionsTest -d /Users/goldlion/Desktop/ExtensionsTest

打开输出的ExtensionsTest文件夹看到,所有.js都变成了.jsc,并且体积都大幅度减小。

下面说一下可选参数,可选参数的意思是使用closure compiler工具压缩代码为一个文件。

COMPRESSED_FILENAME是压缩后的文件名,最好使用xxx.js,因为工具会自动再后面加个c

COMPILER_CONFIG是压缩时调用的配置文件,需要根据项目需求自己填写,在bin目录下有一个做好的缺省例子可以使用,compiler_config_sample.json

我并不建议使用这种做法,因为:

1.如果将所有脚本都压缩为一个文件,那么每次更新都要重新下载这个文件,对于一些对省流量要求很高的公司不适合。

2.压缩的目的是隐藏文件目录结构,但是这个工具只压缩了脚本部分,对于图片,动画,数据,音频视频等等都是不考虑的。而一般开发的方式需要把所有资源都压缩成一个文件,然后在游戏在线更新时只下载更新档,通过程序将更新档中的文件打入到大文件中。注意这涉及到二进制级别的比较删除以及合并,需要做非常仔细的设计,

【cocos2d-x从c++到js】16:使用cocos2d-console工具转换脚本为字节码相关推荐

  1. Linux 安装node.js 16

    操作环境: Linux centOS 7.6 node.js 16 1.首先下载安装包 服务器有网的情况下可以使用(为什么使用16 因为版本太高和系统不匹配) wget https://nodejs. ...

  2. uploadify 报错jquery.uploadify.min.js:16 Uncaught TypeError: Cannot read property 'queueData' of undef

    声明啊,我这个上传原来是已经可用的啦! jquery.uploadify.min.js:16 Uncaught TypeError: Cannot read property 'queueData' ...

  3. Node.js 16 生命周期 结束日期提前

    将 Node.js 16 的生命周期终止日期更改为 2023 年 9 月 11 日 概括 Summary 为什么? Why? 我们评估了以下选项 We have evaluated the follo ...

  4. 时间戳显示为多少分钟前,多少天前的JS处理,JS时间格式化,时间戳的转换

    var dateDiff = function (timestamp) {// 补全为13位var arrTimestamp = (timestamp + '').split('');for (var ...

  5. java计算机毕业设计vue.js开发红酒网站MyBatis+系统+LW文档+源码+调试部署

    java计算机毕业设计vue.js开发红酒网站MyBatis+系统+LW文档+源码+调试部署 java计算机毕业设计vue.js开发红酒网站MyBatis+系统+LW文档+源码+调试部署 本源码技术栈 ...

  6. 计算机毕业设计JavaVue.js网上书城管理系统设计与实现服务端(源码+系统+mysql数据库+lw文档)

    计算机毕业设计JavaVue.js网上书城管理系统设计与实现服务端(源码+系统+mysql数据库+lw文档) 计算机毕业设计JavaVue.js网上书城管理系统设计与实现服务端(源码+系统+mysql ...

  7. 认识Web前端、Web后端、桌面app和移动app新开发模式 - 基于Node.js环境和VS Code工具...

    认识Web.桌面和移动app新开发模式 - 基于Node.js环境和VS Code工具 一.开发环境的搭建(基于win10) 1.安装node.js和npm 到node.js官网下载安装包(包含npm ...

  8. 2d与2.5d坐标转换_Three.js 地理坐标和三维空间坐标的转换

    奇技指南 本文作者高峰,360奇舞团前端工程师,W3C性能工作组/WOT工作组成员 本文转载自奇舞周刊 引言 在实现3D地球时,球面是通过地理贴图渲染的.所以我们所说的地理坐标和三维空间坐标的转换,是 ...

  9. c语言怎么减去一个16进制数,一个简单的有关问题:像这样的16进制数怎么转换得到...

    一个简单的问题:像这样的16进制数如何转换得到? 本帖最后由 alibaren 于 2014-11-25 01:15:15 编辑 下列3个整数(用16进制表示) 如何通过某种运算一次性得到右边的数: ...

最新文章

  1. spring data jpa从入门到精通_Spring Data JPA的简单入门
  2. 高通平台:USB充电
  3. STM32 基础系列教程 30 - 文件系统
  4. python九九乘法表代码知乎_二年级上册表内乘法教学反思_二年级6的乘法口诀教学反思...
  5. Struts2--DomainModel接收参数---使用广泛!!!
  6. leetcode-7-整数翻转
  7. 实验项目 3-4:一元多项式的乘法与加法运算
  8. UWP开发入门(十一)——Attached Property的简单应用
  9. ubuntu系统debootstrap的使用(构建一套基本的系统)
  10. 洛谷P3879 [TJOI2010] 阅读理解 哈希Hash解法
  11. RTP载荷H264视频流
  12. 如何获取Android应用签名?
  13. NB5.5源代码分析之服务端生成
  14. NAT 简介分类作用
  15. python文字处理dummy_python – 使用’dummy’变量创建数学函数,以便稍后进行评估...
  16. 假设检验及在机器学习中的应用
  17. 我家乡的春夏(原创)
  18. pd.DataFrame转换成list
  19. 1.1 卡牌对象的创建———自制卡牌游戏之旅
  20. Codeforces 148D. Bag of mice(概率dp)

热门文章

  1. 四川阆中上演“万人同品腊八粥”
  2. 杀毒软件已经 OUT 了!未来 CPU 也可以检测病毒
  3. 数据结构练习 00-自测1. 打印沙漏(20)
  4. 内存是拿来用的不是拿来看的
  5. 对付网络盗贼的三板斧
  6. java nanos_java命名空间java.util.concurrent.locks接口condition的类成员方法: awaitnanos定义及介绍...
  7. jQuery css-dom
  8. HTML标签详解之格式标签
  9. 归算法及经典递归例子代码实现
  10. Mac下使用OpenCV