Egret社区

资源问题

2019-4-28 09:39
3846
1银子
将图片文件打包后,生成json和png2个文件。那么在使用的时候通过什么方法可以获取到资源(资源放到外部。网络上)?
如打包后的文件:Loading.json和Loading.png
1. 加到资源中,使用本地获取就可以
                var dataLoad = RES.getRes("Loading_json");
                var textureLoad= RES.getRes("Loading_png");

2. 不加到资源中,使用网络资源
        a.方式一,不行
                var strURL: string = LoadInfo.Shared().WebDownLink(0);
                let objurl = strURL + "Loading.json";

                var dataLoad: any = null;
                RES.getResByUrl(objurl, function (data: Object): void {
                        dataLoad = data;
                        // console.log(data);
                }, this, RES.ResourceItem.TYPE_JSON);
                objurl = strURL + "Loading.png";
                var textureLoad: any = null;
                RES.getResByUrl(objurl, function (data: Object): void {
                        textureLoad = data;
                        // console.log(data);
                }, this, RES.ResourceItem.TYPE_SHEET);//TYPE_IMAGE

               
        b.方式二,不行
                //请求登录服务器
                var jsonLoader = new egret.URLLoader();
                jsonLoader.dataFormat = egret.URLLoaderDataFormat.BINARY;
                var jsonReq:egret.URLRequest = new egret.URLRequest();
                jsonReq.requestHeaders = [new egret.URLRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8")];
                jsonReq.url = objurl;
                jsonLoader.addEventListener(egret.Event.COMPLETE,function(evt:egret.Event):void
                {
                        var dataLoad = jsonLoader.data;
                        console.log(dataLoad);
                },this);
                jsonLoader.load(jsonReq);
               
                objurl = strURL + "Loading.png";
                //请求登录服务器
                var pngLoader = new egret.URLLoader();
                pngLoader.dataFormat = egret.URLLoaderDataFormat.TEXTURE;
                var pngReq:egret.URLRequest = new egret.URLRequest();
                pngReq.requestHeaders = [new egret.URLRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8")];
                pngReq.url = objurl;
                pngLoader.addEventListener(egret.Event.COMPLETE,function(evt:egret.Event):void
                {
                        var textureLoad = pngLoader.data;
                        // console.log(textureLoad);
                        console.log("aa");
                },this);
                pngLoader.load(pngReq);



分享到 :
0 人收藏

6 个回复

倒序浏览
冰湖  圆转纯熟 | 2019-4-28 10:49:53
你好,您的资源加载出现了什么问题?或者说您想用什么方式加载资源呢?
ShaiLai  圆转纯熟 | 2019-4-28 10:51:28
冰湖 发表于 2019-4-28 10:49
你好,您的资源加载出现了什么问题?或者说您想用什么方式加载资源呢?

问题里代码第一种本地的可以。就是想网络资源获取后加载到程序中
dujunfeng  圆转纯熟 | 2019-4-28 10:53:41
ShaiLai 发表于 2019-4-28 10:51
问题里代码第一种本地的可以。就是想网络资源获取后加载到程序中

简单来说就是加载位图纹理,我试过,canvas模式下是可以的 ,但是webgl模式下不行,考虑考虑
冰湖  圆转纯熟 | 2019-4-28 11:01:42
RES.getResByUrl(" xxx.png"),你好 我刚试了下,这种方法加载网络资源,是可以获取到的。
ShaiLai  圆转纯熟 | 2019-4-28 12:34:07
冰湖 发表于 2019-4-28 11:01
RES.getResByUrl(" xxx.png"),你好 我刚试了下,这种方法加载网络资源,是可以获取到的。 ...

let LoadFactory: egret.MovieClipDataFactory = new egret.MovieClipDataFactory(dataLoad, textureLoad);
冰湖  圆转纯熟 | 2019-4-28 14:20:06
帧动画要加载本地文件哦,图片可以获取到,json我就不知道了,你可以试一下
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|京网文[2014]0791-191号|京ICP证150115号|Egret社区 ( 京ICP备14025619号 )

Powered by Discuz! X3.4 © 2001-2019 Comsenz Inc.

返回顶部