白鹭引擎-自定义资源处理器, 解析加密资源

白鹭引擎支持自定义资源加载器, 可以方便的使用加密资源;
例如有一个 expmble.png, 加密后为 example.png.enc

下面是自定义资源处理器的示例:

 在Main.ts里面, 注册一个自定义的解析器, EncryptAnalyzer;

//Main.ts入口文件, 增加enc格式注册
 
RES.processor.map("enc",EncryptAnalyzer);

 

增加 EncryptAnalyzer.ts  文件

//EncryptAnalyzer.ts
var EncryptAnalyzer:RES.processor.Processor = {
    onLoadStart(host,resource){
        return new Promise(( reslove ,reject ) => {
            var request: egret.HttpRequest = new egret.HttpRequest();
            request.responseType = egret.HttpResponseType.ARRAY_BUFFER;
            request.open(resource.root+resource.url, "get");
            request.send();
            let onSuccess = ()=>{
                let bufData = request['response'];<br>          
                //对加密的数据, 使用xxtea解密
                let _xxtea = xxtea.getInstance();
                let bytes = _xxtea.decrypt(new Uint8Array(bufData), 'password');
                egret.BitmapData.create('arraybuffer', bytes, function(bmpData){
                    let texture = new egret.Texture();
                    texture._setBitmapData(bmpData);
                    return reslove(texture);
                });
            }
            request.addEventListener(egret.Event.COMPLETE, onSuccess, this);
        })
    },
    onRemoveStart(host,resource){
        let texture = host.get(resource);
        texture.dispose();
        return Promise.resolve();
    }
 
}

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值