【cocos2d-x从c++到js】16:使用cocos2d-console工具转换脚本为字节码
从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工具转换脚本为字节码相关推荐
- Linux 安装node.js 16
操作环境: Linux centOS 7.6 node.js 16 1.首先下载安装包 服务器有网的情况下可以使用(为什么使用16 因为版本太高和系统不匹配) wget https://nodejs. ...
- 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' ...
- Node.js 16 生命周期 结束日期提前
将 Node.js 16 的生命周期终止日期更改为 2023 年 9 月 11 日 概括 Summary 为什么? Why? 我们评估了以下选项 We have evaluated the follo ...
- 时间戳显示为多少分钟前,多少天前的JS处理,JS时间格式化,时间戳的转换
var dateDiff = function (timestamp) {// 补全为13位var arrTimestamp = (timestamp + '').split('');for (var ...
- java计算机毕业设计vue.js开发红酒网站MyBatis+系统+LW文档+源码+调试部署
java计算机毕业设计vue.js开发红酒网站MyBatis+系统+LW文档+源码+调试部署 java计算机毕业设计vue.js开发红酒网站MyBatis+系统+LW文档+源码+调试部署 本源码技术栈 ...
- 计算机毕业设计JavaVue.js网上书城管理系统设计与实现服务端(源码+系统+mysql数据库+lw文档)
计算机毕业设计JavaVue.js网上书城管理系统设计与实现服务端(源码+系统+mysql数据库+lw文档) 计算机毕业设计JavaVue.js网上书城管理系统设计与实现服务端(源码+系统+mysql ...
- 认识Web前端、Web后端、桌面app和移动app新开发模式 - 基于Node.js环境和VS Code工具...
认识Web.桌面和移动app新开发模式 - 基于Node.js环境和VS Code工具 一.开发环境的搭建(基于win10) 1.安装node.js和npm 到node.js官网下载安装包(包含npm ...
- 2d与2.5d坐标转换_Three.js 地理坐标和三维空间坐标的转换
奇技指南 本文作者高峰,360奇舞团前端工程师,W3C性能工作组/WOT工作组成员 本文转载自奇舞周刊 引言 在实现3D地球时,球面是通过地理贴图渲染的.所以我们所说的地理坐标和三维空间坐标的转换,是 ...
- c语言怎么减去一个16进制数,一个简单的有关问题:像这样的16进制数怎么转换得到...
一个简单的问题:像这样的16进制数如何转换得到? 本帖最后由 alibaren 于 2014-11-25 01:15:15 编辑 下列3个整数(用16进制表示) 如何通过某种运算一次性得到右边的数: ...
最新文章
- spring data jpa从入门到精通_Spring Data JPA的简单入门
- 高通平台:USB充电
- STM32 基础系列教程 30 - 文件系统
- python九九乘法表代码知乎_二年级上册表内乘法教学反思_二年级6的乘法口诀教学反思...
- Struts2--DomainModel接收参数---使用广泛!!!
- leetcode-7-整数翻转
- 实验项目 3-4:一元多项式的乘法与加法运算
- UWP开发入门(十一)——Attached Property的简单应用
- ubuntu系统debootstrap的使用(构建一套基本的系统)
- 洛谷P3879 [TJOI2010] 阅读理解 哈希Hash解法
- RTP载荷H264视频流
- 如何获取Android应用签名?
- NB5.5源代码分析之服务端生成
- NAT 简介分类作用
- python文字处理dummy_python – 使用’dummy’变量创建数学函数,以便稍后进行评估...
- 假设检验及在机器学习中的应用
- 我家乡的春夏(原创)
- pd.DataFrame转换成list
- 1.1 卡牌对象的创建———自制卡牌游戏之旅
- Codeforces 148D. Bag of mice(概率dp)
热门文章
- 四川阆中上演“万人同品腊八粥”
- 杀毒软件已经 OUT 了!未来 CPU 也可以检测病毒
- 数据结构练习 00-自测1. 打印沙漏(20)
- 内存是拿来用的不是拿来看的
- 对付网络盗贼的三板斧
- java nanos_java命名空间java.util.concurrent.locks接口condition的类成员方法:
awaitnanos定义及介绍...
- jQuery css-dom
- HTML标签详解之格式标签
- 归算法及经典递归例子代码实现
- Mac下使用OpenCV