我希望在运行的场景中缓存大量纹理,而不阻止它,理论上,如果您将其称为三个参数,则cc.textureCache.addImage会进行异步缓存。这不会发生。
代码:
rainOfArrows: {
_animFrames:[],
loaded: function(){
console.log('>>>>>>>>>>>>>>LOAD!')
},
load: function(){
/* Load all animation arrow sprites in memory & generate animation */
var str = '';
for (var i = 0; i < 40; i++) {
str = 'arrow00' + (i < 10 ? ('0' + i) : i) + '.png';
cc.textureCache.addImage('res/SkilllsAnimations/arrowRain/'+str, this.loaded, this);
var spriteFrame = new cc.SpriteFrame(texture, cc.rect(0,0,winsize.width,winsize.height));
cc.spriteFrameCache.addSpriteFrame(spriteFrame, str);
this._animFrames.push(cc.spriteFrameCache.getSpriteFrame(str));
}
},
run: function():{ ----- }
}
加载的函数被执行,字符串‘>>>>>>>>>>>>>>加载!'是异步打印的。但孔场景将冻结,直到加载所有纹理。
在v3.0之前,这是用addImageAsync完成的,工作正常,现在在3.2中,这被合并到addImage中,但我无法使其工作,我是否缺少了什么?
顺便说一句,我没有使用打包在一个img和plist中的纹理,因为它们太大了。