Cocos2d x cc.textureCache.addImageBlockingUI

Cocos2d x cc.textureCache.addImageBlockingUI,cocos2d-x,cocos2d-x-3.0,cocos2d-js,Cocos2d X,Cocos2d X 3.0,Cocos2d Js,我希望在运行的场景中缓存大量纹理而不阻塞它,理论上,cc.textureCache.addImage do caching async(如果将其称为三个参数)。这并没有发生 代码: rainOfArrows:{ _帧:[], 已加载:函数(){ console.log(“>>>>>>>>>加载!”) }, 加载:函数(){ /*在内存中加载所有动画箭头精灵并生成动画*/ var-str=''; 对于(变量i=0;i

我希望在运行的场景中缓存大量纹理而不阻塞它,理论上,cc.textureCache.addImage do caching async(如果将其称为三个参数)。这并没有发生

代码:

rainOfArrows:{
_帧:[],
已加载:函数(){
console.log(“>>>>>>>>>加载!”)
},
加载:函数(){
/*在内存中加载所有动画箭头精灵并生成动画*/
var-str='';
对于(变量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(纹理,cc.rect(0,0,winsize.width,winsize.height));
cc.spriteFrameCache.addSpriteFrame(spriteFrame,str);
这个.u animFrames.push(cc.spriteFrameCache.getSpriteFrame(str));
}
},
运行:函数():{----------}
}
已执行加载的函数,字符串'>>>>>>>>>>>>>>>>>>>加载!'是异步打印的。但孔场景将冻结,直到加载所有纹理

在v3.0之前,这是通过addImageAsync完成的,并且运行良好,现在在3.2中,这被合并到AddImages中,但我无法让它工作,我是否缺少了什么


顺便说一句,我没有使用一个img和plist中打包的纹理,因为它们太大了。

pandamicro已经提交了一个解决方案,将在3.4中提供

如果您在3.4之前需要,请在此处使用:

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():{ ----- }
}