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