cocos2d-x 使用异步加载图片 会出现短时间白屏,求大神给个解决方案
你是怎么做异步加载的?加载结束前做了什么?
for k,v in pairs(preLoadImg) do
texCache:addImageAsync(v,function (texture)
texture:retain()
cnt = cnt+1
table.insert(tmpTexture,texture)
if cnt==table.count(preLoadImg) then
callback()
for k,v in pairs(tmpTexture) do
v:release()
end
end
end);
end
把需要异步加载的图片,都加载后,再执行后续操作。
从代码来看没什么问题,不应该出现白屏啊。引擎自带的测试例子也有异步加载许多图片的,你试试会白屏吗。
我看源码是每次异步加载完一张纹理,就会把纹理加到场景上。我是一次性把所有需要异步加载的纹理都加载完成后,才把纹理加载到场景上。会不会是这个问题,导致白屏?
应该不会,最多也只是导致卡顿吧。
可以先放一张 loading 图片,再异步加载其他资源
你还是尝试一下吧,我这个是这样的。