首先说明,本人用的2dx版本是2.2.6。
但是遍历资源跟版本的跨度关系不大,使用的类是ZipFile。
第一步在:在ZipFile添加方法,因为_dataThread是个私有的,尽量不改变源码的情况下,添加一个get方法是最好的
这个getAllFile可以返回所有的文件目录
std::vector<std::string>ZipFile::getAllFile(){
std::vector<std::string> vec;
ZipFilePrivate::FileListContainer::iterator it1;
for(it1=_dataThread->fileList.begin();it1!=_dataThread->fileList.end();++it1) {
vec.push_back(it1->first.c_str());
}
return vec;
}
第二步:使用getAllFile的返回值做遍历,这里直接帖出IOS和android的同时遍历吧,同时搜索png和jpg的图片,可以用于加载资源,记得导入头文件
#include "support/zip_support/ZipUtils.h"
#if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)
#include <dirent.h>
#include <sys/stat.h>
#else
#include "platform/CCCommon.h"
#include "support/zip_support/unzip.h"
#include "jni/Java_org_cocos2dx_lib_Cocos2dxHelper.h"
#endif