cocos2dx csb文件的预加载
预加载资源一般放入缓存中,有异步和同步加载两种方式(一般针对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 C++中有这个方法,但lua中没有,尝试genbindings,FileUtils::getInstance()->getDataFromFile会报错,解决错误后, createNode(const Data& data,const ccNodeLoadCallback &callback)会断点,是否不支持lua? if (argc == 2) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |