【发布时间】: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