【问题标题】:cc.textureCache.addImage blocking UIcc.textureCache.addImage 阻塞 UI
【发布时间】:2015-02-25 15:34:51
【问题描述】:

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

加载的函数被执行,字符串 '>>>>>>>>>>>>>>LOAD!'是异步打印的。但是洞场景会冻结,直到所有纹理都加载完毕。

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

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

【问题讨论】:

    标签: cocos2d-x cocos2d-x-3.0 cocos2d-js


    【解决方案1】:

    pandamicro 已提交对此的修复,并将在 3.4 中提供

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多