bug文件 github地址:https://github.com/cocos2d-html5/cocos2d-x/blob/v3_assets_manager/extensions/assets-manager/AssetsManager.cpp
出错函数:
void AssetsManager::checkUpdate()
{
if (!_localManifest->isLoaded())
{
CCLOG(“AssetsManager : No local manifest file found error.\n”);
dispatchUpdateEvent(EventAssetsManager::EventCode::ERROR_NO_LOCAL_MANIFEST);
return;
}
switch (_updateState) {
case State::UNCHECKED:
case State::PREDOWNLOAD_VERSION:
{
downloadVersion();
}
break;
case State::UP_TO_DATE:
{
dispatchUpdateEvent(EventAssetsManager::EventCode::ALREADY_UP_TO_DATE);
}
break;
case State::FAIL_TO_UPDATE:
case State::NEED_UPDATE:
{
dispatchUpdateEvent(EventAssetsManager::EventCode::NEW_VERSION_FOUND);
}
break;
default:
break;
}
}
执行到downloadVersion()后,由于函数判断 _updateState != State::PREDOWNLOAD_VERSION 后面的逻辑不再执行
void AssetsManager::downloadVersion()
{
if (_updateState != State::PREDOWNLOAD_VERSION)
return;
std::string versionUrl = _localManifest->getVersionFileUrl();
if (versionUrl.size() > 0)
{
_updateState = State::DOWNLOADING_VERSION;
// Download version file asynchronously
_downloader->downloadAsync(versionUrl, _cacheVersionPath, VERSION_ID);
}
// No version file found
else
{
CCLOG("AssetsManager : No version file found, step skipped\n");
_updateState = State::PREDOWNLOAD_MANIFEST;
downloadManifest();
}
}