Project1

标题: 关于Sprite类图片加载的问题 [打印本页]

作者: 丹水雅乐    时间: 2024-4-9 12:38
标题: 关于Sprite类图片加载的问题
createClockSprite(){
            if(this.clockBitmap.isReady()){//1
                this._clockSprite=new Sprite(this.clockBitmap);
                this._clockSprite.x=(Graphics.boxWidth-this._clockSprite.width)/2;
                this._clockSprite.y=0;
                this.centerPoint=new Point(this._clockSprite.x+258,
                    this._clockSprite.y+282);
                this.addChild(this._clockSprite);
                //console.dir(this._clockSprite);
                this.createHourSprite();
                this.createMinSprite();
            }else{//2
                this.clockBitmap.addLoadListener(()=> this.createClockSprite());
                //console.log('error');
            }
        }
当我第一次进入创建精灵方法时,如果图片已经好了直接进入if//1,精灵就会不显示,如果没好进入else//2,使用监听器重新创建精灵,精灵就能显示出来。为什么呢?
作者: 丹水雅乐    时间: 2024-4-9 12:45
如果把bitmap设置放到精灵创建方法的开头,百分之八九十能进入else//2,不过还是有小概率会进入if//1
作者: 泼墨漓江    时间: 2024-4-9 18:40
你的用法是对的,bitmap创建后会向数据源请求数据,请求到数据,完成数据载入后才会设isReady为true。不过bitmap和sprite之间本身有联动,如果为sprite设置bitmap,其会自动监听bitmap的状态,加载完成后设置真实数据。
作者: 丹水雅乐    时间: 2024-4-11 17:25
泼墨漓江 发表于 2024-4-9 18:40
你的用法是对的,bitmap创建后会向数据源请求数据,请求到数据,完成数据载入后才会设isReady为true。不过b ...

具体问题是第一次创建精灵的时候会加载不出来图片,这是为什么呢
作者: 清澈淌漾    时间: 2024-4-11 20:45
丹水雅乐 发表于 2024-4-11 17:25
具体问题是第一次创建精灵的时候会加载不出来图片,这是为什么呢

因为还没读好
作者: 泼墨漓江    时间: 2024-4-14 16:51
丹水雅乐 发表于 2024-4-11 17:25
具体问题是第一次创建精灵的时候会加载不出来图片,这是为什么呢

加载不出来是指一开始不显示吗?一开始不显示没啥啊,还在下载,图片下下来,就自动更新到sprite,就看见了。




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1