Egret之异步JSZIP操作

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Egret之异步JSZIP操作相关的知识,希望对你有一定的参考价值。

一 ,首先更改Main.ts, 你懂的


    private analyzerImg2Texture: ($buffer: ArrayBuffer) => Promise<egret.Texture> = ($buffer): Promise<egret.Texture> => {
        return new Promise<egret.Texture>((resolve, reject): void => {
            egret.BitmapData.create("arraybuffer", $buffer, ($data: egret.BitmapData): void => {
                let $texture: egret.Texture = new egret.Texture();
                $texture._setBitmapData($data);
                resolve($texture);
            });
        });
    };
    /**
     * 创建场景界面
     * Create scene interface
     */
    protected createGameScene(): void {
        JSZip.loadAsync( RES.getRes(`zipdemo_zip`) ).then( $jszip => {
            $jszip.file("a.txt").async("text").then( ($str : string) => {
                console.log(`获得的数据 : ${$str}`);
            } );
            $jszip.file("button_down.png").async("arraybuffer").then( ($buffer: ArrayBuffer) => {
                this.analyzerImg2Texture( $buffer ).then( $texture => {
                    let $map: egret.Bitmap = new egret.Bitmap($texture);
                    this.addChild( $map );
                } );
            } );
        } );

        // let sky = this.createBitmapByName("bg_jpg");
        // this.addChild(sky);
        // let stageW = this.stage.stageWidth;
        // let stageH = this.stage.stageHeight;
        // sky.width = stageW;
        // sky.height = stageH;
        //
        // let topMask = new egret.Shape();
        // topMask.graphics.beginFill(0x000000, 0.5);
        // topMask.graphics.drawRect(0, 0, stageW, 172);
        // topMask.graphics.endFill();
        // topMask.y = 33;
        // this.addChild(topMask);
        //
        // let icon: egret.Bitmap = this.createBitmapByName("egret_icon_png");
        // this.addChild(icon);
        // icon.x = 26;
        // icon.y = 33;
        //
        // let line = new egret.Shape();
        // line.graphics.lineStyle(2, 0xffffff);
        // line.graphics.moveTo(0, 0);
        // line.graphics.lineTo(0, 117);
        // line.graphics.endFill();
        // line.x = 172;
        // line.y = 61;
        // this.addChild(line);
        //
        //
        // let colorLabel = new egret.TextField();
        // colorLabel.textColor = 0xffffff;
        // colorLabel.width = stageW - 172;
        // colorLabel.textAlign = "center";
        // colorLabel.text = "Hello Egret";
        // colorLabel.size = 24;
        // colorLabel.x = 172;
        // colorLabel.y = 80;
        // this.addChild(colorLabel);
        //
        // let textfield = new egret.TextField();
        // this.addChild(textfield);
        // textfield.alpha = 0;
        // textfield.width = stageW - 172;
        // textfield.textAlign = egret.HorizontalAlign.CENTER;
        // textfield.size = 24;
        // textfield.textColor = 0xffffff;
        // textfield.x = 172;
        // textfield.y = 135;
        // this.textfield = textfield;
        //
        // let button = new eui.Button();
        // button.label = "Click!";
        // button.horizontalCenter = 0;
        // button.verticalCenter = 0;
        // this.addChild(button);
        // button.addEventListener(egret.TouchEvent.TOUCH_TAP, this.onButtonClick, this);
    }

二, 加入资源(zip)

技术图片

①a.txt:
技术图片

三, 加入到资源列表

技术图片

四, 结果

技术图片

以上是关于Egret之异步JSZIP操作的主要内容,如果未能解决你的问题,请参考以下文章

Egret之JSZip高级应用:压缩JS

Egret之JSZip解析图片

Egret之JSZip基础

Egret 压缩与解压(jszip)

egret 微信小游戏 错误

EUI加载 JSZip打包DragonBones二进制文件