博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【cocos2d-x从c++到js】16:使用cocos2d-console工具转换脚本为字节码
阅读量:6893 次
发布时间:2019-06-27

本文共 2159 字,大约阅读时间需要 7 分钟。

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


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

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

1
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查看编译字节码的命令格式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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_ARR
                        
source 
directory of js files needed to be compiled,
                        
supports mutiple 
source 
directory
  
-d DST_DIR, --dst=DST_DIR
                        
destination directory of js bytecode files to be
                        
stored
  
-c, --use_closure_compiler
                        
Whether to use closure compiler to compress all js
                        
files into just a big 
file
  
-o COMPRESSED_FILENAME, --output_compressed_filename=COMPRESSED_FILENAME
                        
Only available when 
'-c' 
option was True
  
-j COMPILER_CONFIG, --compiler_config=COMPILER_CONFIG
                        
The configuration 
for 
closure compiler by using JSON,
                        
please refer to compiler_config_sample.json


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


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

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


 本文转自 老G 51CTO博客,原文链接:http://blog.51cto.com/goldlion/1359012,如需转载请自行联系原作者

你可能感兴趣的文章
Laravel5设计json api时候的一些道道
查看>>
转 Mac添加环境变量的三种方法
查看>>
数据结构
查看>>
找回kangle后台管理账号和密码
查看>>
作业配置规范文档[MS SQL]
查看>>
数据对接—kettle使用之五
查看>>
移动端HTML5实现打电话,发短信,发邮件,文件上传
查看>>
Effective Java 笔记
查看>>
安装opensips时出现curses.h:31:19: 错误的解决
查看>>
在Windows Server 2016 Core模式下安装Windows Admin Center
查看>>
kill killall pkill 的区别
查看>>
shell编程之选择结构
查看>>
MDT捕捉镜像提示错误
查看>>
Linux 文件搜索
查看>>
我的友情链接
查看>>
Content-Disposition 响应头
查看>>
给maven配置proxy
查看>>
C++ Lesson4 构造函数与析构函数之一
查看>>
MSsql里执行insert时报错“identity_insert off”的解决办法
查看>>
percona-toolkit工具检查MySQL复制一致性及修复
查看>>