Egret社区

loading页面图片不显示

2018-11-8 11:04
10710
5银子
loading页面有一张背景图,手机测试的时候不显示,只有黑屏,请问有大佬知道原因吗?
附上loadingUI:

class LoadingUI extends egret.Sprite implements RES.PromiseTaskReporter {
    public constructor() {
        super();
        this.createView();
    }

    private textField: egret.TextField;
    private loadingBg: egret.Bitmap;
    private bgUrl = "resource/assets/login/loadingUIBg.jpg";

    private createView(): void {
        /**加载页背景 */
        var urlLoader: egret.URLLoader = new egret.URLLoader();
        urlLoader.addEventListener(egret.Event.COMPLETE, this.onComplete, this);
        urlLoader.dataFormat = egret.URLLoaderDataFormat.TEXTURE;
        urlLoader.load(new egret.URLRequest(this.bgUrl));
        this.loadingBg = new egret.Bitmap();
        this.addChildAt(this.loadingBg, 0);



        this.textField = new egret.TextField();
        this.addChild(this.textField);
        this.textField.y = 300;
        this.textField.width = 480;
        this.textField.height = 100;
        this.textField.textAlign = "center";
    }


    private onComplete(e: egret.Event): void {
        var urlLoader: egret.URLLoader = <egret.URLLoader>e.target;
        var texture = urlLoader.data;
        if (urlLoader._request.url == this.bgUrl) {
            this.loadingBg.texture = texture;

        }
    }

    public onProgress(current: number, total: number): void {
        this.textField.text = `Loading...${current}/${total}`;
    }
}


Main.ts里边:
    private async loadResource() {
        try {
            const loadingView = new LoadingUI();
            this.stage.addChild(loadingView);
            await RES.loadConfig("default.res.json", "https://www.xxxxxxxx.xxx/Public/bl/resource/");
            await this.loadTheme();
            await RES.loadGroup("preload", 0, loadingView);
            this.stage.removeChild(loadingView);
        }
        catch (e) {
            console.error(e);
        }
    }


最佳答案

查看完整内容

我知道 我遇到过 加载图片的用 imageLoader //方法 private async getLoadRes(url, type) { return new Promise((resolve, reject) => { if (type != egret.URLLoaderDataFormat.TEXTURE) { let load = new egret.URLLoader(); let request = new egret.URLRequest(url); load.dataFormat = type; load.load(request); load.once(egret.Event.COMPLETE ...
分享到 :
0 人收藏

10 个回复

倒序浏览
didy007  圆转纯熟 | 2018-11-8 11:04:34
本帖最后由 didy007 于 2018-11-8 16:03 编辑
shana 发表于 2018-11-8 15:54
我上边写的都不报错,开发者工具里边运行的也没问题,但是到手机上之后只能看见loading文字,背景图片看 ...

我知道 我遇到过 加载图片的用 imageLoader
//方法
private async getLoadRes(url, type) {

    return new Promise((resolve, reject) => {
        if (type != egret.URLLoaderDataFormat.TEXTURE) {
            let load = new egret.URLLoader();
            let request = new egret.URLRequest(url);
            load.dataFormat = type;
            load.load(request);
            load.once(egret.Event.COMPLETE, (res) => {

                resolve(load.data);

            }, this);
        }
        else {
            let loadBg = new egret.ImageLoader();
            loadBg.load(url);
            loadBg.once(egret.Event.COMPLETE, () => {
                var texture = new egret.Texture();
                texture.bitmapData = loadBg.data;
                resolve(texture);
            }, this);
        }
    });
}


//调用的地方
public asyns loading(){
await this.getLoadRes(`url地址`, egret.URLLoaderDataFormat.TEXTURE).then((res) => {
    背景图片
= res as string;
});
}


冰湖  官方团队 | 2018-11-8 13:55:34
你在LoadingUI里把获取图片的代码改为这样试试:
[JavaScript] 纯文本查看 复制代码
 RES.getResByUrl("resource/images/loading2.png",(data,url)=>{
            this.bt = new egret.Bitmap();
            this.bt.texture = data;
            this.bt.anchorOffsetX = this.bt.width/2;
            this.bt.anchorOffsetY = this.bt.height/2;
            this.bt.x = this.width/2;
            this.bt.y = this.height/2;
            this.addChild( this.bt );
},this,RES.ResourceItem.TYPE_IMAGE);

shana  登堂入室 | 2018-11-8 14:14:34
冰湖 发表于 2018-11-8 13:55
你在LoadingUI里把获取图片的代码改为这样试试:
[mw_shl_code=javascript,true] RES.getResByUrl("resource ...

用getResByUrl 报错  
冰湖  官方团队 | 2018-11-8 15:32:15
shana 发表于 2018-11-8 14:14
用getResByUrl 报错

你没有这个? QQ截图20181108153146.jpg
shana  登堂入室 | 2018-11-8 15:36:54

我wing里边不报错,运行到小游戏里边开发者工具报错。
didy007  圆转纯熟 | 2018-11-8 15:48:36
加载图片的用new egret.ImageLoader();
shana  登堂入室 | 2018-11-8 15:50:41
didy007 发表于 2018-11-8 15:48
加载图片的用new egret.ImageLoader();

这个也试过了,在微信里边就是不显示
didy007  圆转纯熟 | 2018-11-8 15:51:01

在没有 RES.loadConfig 前用相关RES的方法会报错的吧。
shana  登堂入室 | 2018-11-8 15:54:59
didy007 发表于 2018-11-8 15:51
在没有 RES.loadConfig 前用相关RES的方法会报错的吧。

我上边写的都不报错,开发者工具里边运行的也没问题,但是到手机上之后只能看见loading文字,背景图片看不见,一片黑,就像之前没写loadingUI那样
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

返回顶部