From c0505f13f7f04ac17f0b0a23f749290b70d612e8 Mon Sep 17 00:00:00 2001 From: Nguyen Dac Nam Date: Fri, 1 Jul 2016 17:39:32 +0700 Subject: [PATCH] Fix load Json file error Error happen when load Json file that DBCCFactory convert Data from binary to const char --- dragonbones/renderer/DBCCFactory.cpp | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/dragonbones/renderer/DBCCFactory.cpp b/dragonbones/renderer/DBCCFactory.cpp index cb4d339..d595df6 100755 --- a/dragonbones/renderer/DBCCFactory.cpp +++ b/dragonbones/renderer/DBCCFactory.cpp @@ -50,20 +50,22 @@ DragonBonesData* DBCCFactory::loadDragonBonesData(const std::string &dragonBones { return existDragonBonesData; } - cocos2d::Data data = cocos2d::FileUtils::getInstance()->getDataFromFile(dragonBonesFilePath); - if (data.getSize() == 0) - { - CCLOG("read file [%s] error!", dragonBonesFilePath.c_str()); - return nullptr; - } + DragonBonesData *dragonBonesData = nullptr; const std::string filePosfix = getFilePosfix(dragonBonesFilePath); if (".JSON" == filePosfix) { - dragonBonesData = JSONDataParser::parseDragonBonesData(reinterpret_cast(data.getBytes())); + std::string data = cocos2d::FileUtils::getInstance()->getStringFromFile(dragonBonesFilePath); + dragonBonesData = JSONDataParser::parseDragonBonesData(data.c_str()); } else if (".XML" == filePosfix) { + cocos2d::Data data = cocos2d::FileUtils::getInstance()->getDataFromFile(dragonBonesFilePath); + if (data.getSize() == 0) + { + CCLOG("read file [%s] error!", dragonBonesFilePath.c_str()); + return nullptr; + } #ifdef COCOS2D_DEBUG timeval t_beg,t_end; @@ -88,6 +90,13 @@ DragonBonesData* DBCCFactory::loadDragonBonesData(const std::string &dragonBones } else if (".XMLB" == filePosfix) { + cocos2d::Data data = cocos2d::FileUtils::getInstance()->getDataFromFile(dragonBonesFilePath); + if (data.getSize() == 0) + { + CCLOG("read file [%s] error!", dragonBonesFilePath.c_str()); + return nullptr; + } + #ifdef COCOS2D_DEBUG timeval t_beg,t_end; gettimeofday(&t_beg, NULL);