cc.textureCache.addImage 阻塞 UI

cc.textureCache.addImage blocking UI

我想在 运行 场景中缓存大量纹理而不阻塞它,理论上 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():{ ----- }
}

加载的函数被执行,string '>>>>>>>>>>>>>>>LOAD!'异步打印。但是在加载所有纹理之前,洞场景会冻结。

在 v3.0 之前,这是通过 addImageAsync 完成的并且工作正常,现在在 3.2 中它被合并到 addImage 中但是我无法让它工作,我错过了什么吗?

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

pandamicro 已提交此修复程序并将在 3.4 中提供

如果你在 3.4 之前需要它:https://github.com/pandamicro/cocos2d-js/commit/2a124b5