【cocos2d-x从c++到js】16:使用cocos2d-console工具转换脚本为字节码
從Cocos2D-X v2.1.4版本開(kāi)始,增加了Cocos2D-console命令行工具,該工具的其中一個(gè)功能是:把.js文件轉(zhuǎn)換為.jsc文件,該文件是字節(jié)碼格式,可以提高代碼的安全性。
使用這個(gè)工具的方式很簡(jiǎn)單。以引擎自帶的TestJavaScript項(xiàng)目為例:
首先我們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查看編譯字節(jié)碼的命令格式
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
參數(shù)非常簡(jiǎn)單,一個(gè)輸入目錄,一個(gè)輸出目錄,后面加一組可選參數(shù)。該工具在遍歷.js文件時(shí)支持文件夾遞歸訪(fǎng)問(wèn),在輸出.jsc文件時(shí)支持按照源文件夾的結(jié)構(gòu)全部新建文件夾。易用性還是不錯(cuò)的。
對(duì)TestJavaScript其中一個(gè)文件夾ExtensionsTest使用Cocos2D-console工具進(jìn)行加密來(lái)測(cè)試。輸出路徑設(shè)置為桌面
./cocos2d.py jscompile -s /Users/goldlion/Documents/developer/cocos2d-x-3.0beta/samples/Javascript/Shared/tests/ExtensionsTest -d /Users/goldlion/Desktop/ExtensionsTest
打開(kāi)輸出的ExtensionsTest文件夾看到,所有.js都變成了.jsc,并且體積都大幅度減小。
下面說(shuō)一下可選參數(shù),可選參數(shù)的意思是使用closure compiler工具壓縮代碼為一個(gè)文件。
COMPRESSED_FILENAME是壓縮后的文件名,最好使用xxx.js,因?yàn)楣ぞ邥?huì)自動(dòng)再后面加個(gè)c
COMPILER_CONFIG是壓縮時(shí)調(diào)用的配置文件,需要根據(jù)項(xiàng)目需求自己填寫(xiě),在bin目錄下有一個(gè)做好的缺省例子可以使用,compiler_config_sample.json
我并不建議使用這種做法,因?yàn)?#xff1a;
1.如果將所有腳本都?jí)嚎s為一個(gè)文件,那么每次更新都要重新下載這個(gè)文件,對(duì)于一些對(duì)省流量要求很高的公司不適合。
2.壓縮的目的是隱藏文件目錄結(jié)構(gòu),但是這個(gè)工具只壓縮了腳本部分,對(duì)于圖片,動(dòng)畫(huà),數(shù)據(jù),音頻視頻等等都是不考慮的。而一般開(kāi)發(fā)的方式需要把所有資源都?jí)嚎s成一個(gè)文件,然后在游戲在線(xiàn)更新時(shí)只下載更新檔,通過(guò)程序?qū)⒏聶n中的文件打入到大文件中。注意這涉及到二進(jìn)制級(jí)別的比較刪除以及合并,需要做非常仔細(xì)的設(shè)計(jì),
總結(jié)
以上是生活随笔為你收集整理的【cocos2d-x从c++到js】16:使用cocos2d-console工具转换脚本为字节码的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: debian NO_PUBKEY 8B4
- 下一篇: POJ3617