您好,登錄后才能下訂單哦!
從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_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工具進行加密來測試。輸出路徑設置為桌面
./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.壓縮的目的是隱藏文件目錄結構,但是這個工具只壓縮了腳本部分,對于圖片,動畫,數據,音頻視頻等等都是不考慮的。而一般開發的方式需要把所有資源都壓縮成一個文件,然后在游戲在線更新時只下載更新檔,通過程序將更新檔中的文件打入到大文件中。注意這涉及到二進制級別的比較刪除以及合并,需要做非常仔細的設計,
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。