game.js 文件里
if ((typeof swan !== ‘undefined’) && (typeof swanGlobal !== ‘undefined’)) {
require(“swan-game-adapter.js”);
require(“libs/laya.bdmini.js”);
} else if (typeof wx!==“undefined”) {
require(“weapp-adapter.js”);
require(“libs/laya.wxmini.js”);
}
window.JSZip = require(“jszip.min.js”);
window.loadLib = require;
require(“index.js”);
加入这么一句红字就可以了 不需要在min.js里改任何东西
然后使用的时候
package
{
import laya.utils.Handler;
import laya.net.Loader;
import laya.utils.Browser;
public class ZipLoad
{
public static var instance:ZipLoad = new ZipLoad();
public function ZipLoad()
{
}
public static function load(fileName:String,handler:Handler):void{
instance.loadFile(fileName,handler);
}
public var handler:Handler = null;
public function loadFile(fileName:String,handler:Handler):void{
this.handler = handler;
Laya.loader.load(fileName,new Handler(this,zipFun),null,Loader.BUFFER);
}
public function zipFun(ab:ArrayBuffer):void {
var self:ZipLoad = this;
Browser.window.JSZip.loadAsync(ab).then( function(jszip:Object):void{
self.analysisFun( jszip );
} );
}
public var currentJSZip:Object;
public var fileNameArr:Array = [];
public var resultArr:Array = [];
public function analysisFun(jszip:Object):void{
this.currentJSZip = jszip;
for( var fileName:String in jszip.files ){
fileNameArr.push(fileName + "");
}
this.exeOne();
}
public function exeOne():void {
var self:ZipLoad = this;
currentJSZip.file(fileNameArr[0]).async('string').then(function(content):void{
self.over(content);
});
}
public function over(content):void
{
var fileName:String = fileNameArr.shift();
resultArr.push(fileName);
resultArr.push(content);
if( fileNameArr.length != 0 ){
exeOne();
}else{
handler.runWith([resultArr]);
}
}
}
}
使用的时候是这样
ZipLoad.load( “config.zip”,new Handler(this,zipFun) );
public function zipFun(arr:Array):void
{
}
var self:ZipLoad = this;
这句是为了把域传进去
不然回调里 你的域就是window 而不是当前实例
做的时候 走了很多弯路 比如去改jszip里的文件 不管用
还考虑过用ByteArray 但是 uncompress 又无法使用
经过老李的指点 也可以使用 微信自己的api
FileSystemManager.unzip(Object object)
https://developers.weixin.qq.com/minigame/dev/api/FileSystemManager.unzip.html