creator1.8.0
platform:web
场景只有两个按钮,触发加载spriteframe并添加sprite到屏幕,和将sprite从场景移除并释放掉这个spriteframe资源,第一次的加载创建,和移除释放是正常的(其实不太正常,androidstudio上看到内存占用并没有下降),然后再次调用onclickLoad(),加载回掉是成功的,但是加载的资源是不正确的,
onClickLoad(){
let self = this;
self.allSp = [];
cc.loader.loadRes('textures/background',cc.SpriteFrame,function(err,frame){
if(err == null){
console.log('================load succ');
for(let i = 0;i<1000;i++){
let newNode = new cc.Node();
newNode.addComponent(cc.Sprite);
newNode.getComponent(cc.Sprite).spriteFrame = frame;
newNode.parent = self.node;
newNode.position = cc.p(Math.random()*300,Math.random()*300);
self.allSp.push(newNode);
}
}else{
console.log(err);
console.log('================load fail');
}
});
},
onClickRelease(){
let self = this;
for(let i = 0;i < 1000;i++){
let sp = self.allSp.pop();
sp.destroy();
}
let deps = cc.loader.getDependsRecursively('textures/background');
console.log(deps);
cc.loader.release(deps);
cc.sys.garbageCollect();
}
第一次调用onClickLoad
第一次调用onClickRelease
第二次调用onClickLoad,console日志:
场景界面:
loader是认为加载成功了,但是texture不存在啊,都是白的,是我哪里没用对吗
@jare @panda



