【咸魚教程】JsZip壓縮與解壓教程


引擎版本3.0.6

教程目錄
一 為什么要用jszip
二 如何使用jszip
    2.1 下載jszip庫
    2.2 導入jszip庫
    2.3 加載和解壓zip代碼
三 Demo源碼下載

一 為什么要用jszip
在游戲中有大量配置文件時,為了減少加載次數和傳輸量,將文件打包成zip,在egret中加載並解壓獲取數據。

在中大型游戲,不可避免有大量的游戲配置文件。

 


為了減少加載次數和傳輸量,我們事先將這些文件壓縮打包成zip, 然后在egret中加載,並使用jszip庫解壓獲取其中的數據。



 


二 如何使用jszip

2.1 下載jszip庫
官方gitbug下載地址:https://github.com/egret-labs/egret-game-library

2.2 導入jszip庫
將下載的jszip文件夾放到合適位置,我這里直接丟在了項目目錄下
 

打開項目目錄下egretProperties.json,將jszip添加到配置文件中

[AppleScript]  純文本查看 復制代碼
?
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
"modules" : [
     {
       "name" : "egret"
     } ,
     {
       "name" : "game"
     } ,
     {
       "name" : "tween"
     } ,
     {
       "name" : "res"
     } ,
         {
                 "name" : "jszip" ,
                 "path" : "jszip"
         }
   ]



添加完成后,記得編譯一次引擎。
 

2.3  加載和解壓zip代碼

[AppleScript]  純文本查看 復制代碼
?
01
02
03
04
05
06
07
08
09
10
/ / 加載 zip
RES.getResByUrl ( "resource/assets/assets.zip" , function ( data ) {
               / / 解壓數據
               var zip = new JSZip ( data ) ;
               
               / / 讀取技能數據
               var skillJson = JSON.parse ( zip . file ( "skill.json" ) .asText ( ) ) ;
               console. log ( skillJson ) ;
               
} , this , RES.ResourceItem.TYPE_BIN ) ;



更新一個解壓圖片的:
參考的教程: https://segmentfault.com/a/1190000002669262

[AppleScript]  純文本查看 復制代碼
?
1
2
3
4
5
6
7
8
/ / 讀取圖片
  var buffer = zip . file ( "fire.png" ) .asArrayBuffer ( ) ;
var base 64 = this.arrayBufferToBase 64 ( buffer ) ;
base 64 = "data:image/png;base64," + base 64 ;
               
var img : eui.Image = new eui.Image ( ) ;
img.source = base 64 ;
this.addChild ( img ) ;



[AppleScript]  純文本查看 復制代碼
?
1
2
3
4
5
6
7
8
9
private arrayBufferToBase 64 ( buffer ) { 
     var binary = ''; 
     var bytes = new Uint 8 Array ( buffer )
     var len = bytes.byteLength; 
     for ( var i = 0 ; i < len; i + + ) { 
          binary + = String.fromCharCode ( bytes[ i ] )
     } 
     return window .btoa ( binary )
}





三 Demo下載

https://files-cdn.cnblogs.com/files/gamedaybyday/Egret3.0.6_JSZipExample.7z


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM