环境:cocos3.10 c++ (win7 + vs2013)
预加载资源一般放入缓存中,有异步和同步加载两种方式(一般针对plist大文件)
这些资料网上有各种博客讲解,大家一搜就能搜到。
可查看下这个帖子:http://www.cocoachina.com/bbs/read.php?tid=219154
加载csb:
CSLoader.h 头文件中
static cocos2d::Node* createNode(const std::string& filename);//普通加载csb
static cocos2d::Node* createNode(const std::string& filename, const ccNodeLoadCallback& callback);
static cocos2d::Node* createNode(const Data& data);//预加载csb
static cocos2d::Node* createNode(const Data& data, const ccNodeLoadCallback &callback);
可使用createNode(const Data& data)函数来达到预加载csb的作用。
使用步骤:
const Data data = FileUtils::getInstance()->getDataFromFile(“res/MainScene.csb”);
auto _node = CSLoader::createNode(data);
this->addChild(_node);
缺点:需要一个全局变量来保存data数据。没图片预加载那么方便。但是自己控制内存也不错。
函数简介:
进入createNode函数后,会指向:Node * CSLoader::createNode(const Data& data, const ccNodeLoadCallback &callback)
在它里面主要有4部分组成
1、auto csparsebinary = GetCSParseBinary(data.getBytes()); //data数据转移到csparsebinary 中
2、SpriteFrameCache::getInstance()->addSpriteFramesWithFile(textures->Get(i)->c_str());//加载资源
3、 node = loader->nodeWithFlatBuffers(csparsebinary->nodeTree(), callback);//csparsebinary数据转化成node数据
4、loader->reconstructNestNode(node);//重建node
如有错误之处,望指正!
最后感谢各位对cocos的支持!