При загрузке сцены я предварительно загружаю все ресурсы, такие как спрайты, звуки и т. д. Но одно из моих тестовых устройств (HTC Desire, Android 2.2.2) выгружает ресурсы после загрузки, поэтому, когда игра пытается воспроизвести какой-либо звук или нарисовать спрайт, она зависает на момент, чтобы снова загрузить ресурс. Эта проблема возникает только на HTC Desire, на других моих устройствах (Samsung Galaxy Ace, вкладка Android 2.3.6 и Acer A100, Android 4.0.3) такой проблемы не было.
Может кто-нибудь сказать мне, почему это происходит? Спасибо.
Вот как я предварительно загружаю ресурсы:
for (.....)
{
CCString* file = CCString::create(path.c_str());
if(file) {
CCTexture2D* texture = CCTextureCache::sharedTextureCache()->addImage(file->getCString());
}
}
Я также пробовал так, но это дает результат сохранения:
for (.....)
{
CCString* file = CCString::create(path.c_str());
if(file) {
CCSpriteFrame* frame = new CCSpriteFrame();
CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFrame(frame, file->getCString());
frame->retain();
}
}
В обоих случаях CCTextureCache::sharedTextureCache()->dumpCachedTextureInfo() сообщает, что все текстуры загружены:
01-29 15:18:36.111: D/cocos2d-x debug info(7579): cocos2d: CCTextureCache dumpDebugInfo: 53 текстуры, для 103840 КБ (101,41 МБ)
Я также пытался уменьшить количество предзагруженных текстур до 31 (42,76 МБ), но ничего не изменилось.
P.S.: Повторяю, эта проблема проявляется только на Desire с ОС Android 2.2...