异步加载动画文件的下面这段代码的逻辑是不是有问题呢?
_configFileList.push_back(filePath);将这句话放到动画文件加载完成是不是会更好?
如果连续两次调用
ArmatureDataManager::getInstance()->addArmatureFileInfoAsync(path,this,schedule_selector(Hero::animationLoad));
ArmatureDataManager::getInstance()->addArmatureFileInfoAsync(path,this,schedule_selector(Hero::animationLoad));
addArmatureFileInfoAsync()这个函数。第二次调用的时候,由于_configFileList 里面已有数据,但是数据不是在加载完成之后插入的。会导致出问题
void DataReaderHelper::addDataFromFileAsync(const std::string& imagePath, const std::string& plistPath, const std::string& filePath, Ref target, SEL_SCHEDULE selector)
{
/
* Check if file is already added to ArmatureDataManager, if then return.
/
for(unsigned int i = 0; i < _configFileList.size(); i++)
{
if (_configFileList == filePath)
{
if (target && selector)
{
if (_asyncRefTotalCount == 0 && _asyncRefCount == 0)
{
(target->*selector)(1);
}
else
{
(target->*selector)((_asyncRefTotalCount - _asyncRefCount) / (float)_asyncRefTotalCount);
}
}
return;
}
}
_configFileList.push_back(filePath);
*