转载自:http://cn.cocos2d-x.org/tutorial/show?ID=1277
本章只分享一下异步加载的逻辑,如有不对的地方还望大家及时指出。
目前我代码中需要异步加载的资源一共有四类:
1.png,单个png的情况比较少
2.pList和png一起的打包资源
3.pList和pvr.ccz一起的打包资源
4.Cocosstudio导出的.ExportJson后缀的动画文件
再重复一遍加载机制:所有的资源是按序加载的,不可同时加载多个文件。执行异步加载的处理肯定是写在voID update(float f)中,做到按帧加载。
1.png的异步加载
1 2 | Director::getInstance()->getTextureCache()->addImageAsync(reloadImages[curReloadimgNum], CC_CALLBACK_1(LoadingScene::imageAsyncCallback, @H_502_45@this )); |
2.pList和png一起的打包资源
废话不多,直接上方法,没有加载pList的API,我们使用如1的方法加载png,然后在回调函数中加载pList。
voID LoadingScene::plistimageAsyncCallback(cocos2d::Texture2D*texture) { SpriteFrameCache::getInstance()->addSpriteFramesWithfile(reloadPLists[curReloadPListNum].append( "pList" ),texture); curReloadPListNum++; loading= true ; } |
3.pList和pvr.ccz一起的打包资源
类似2的方法。
Director::getInstance()->getTextureCache()->addImageAsync(reloadPvrPLists[curReloadPvrPListNum]+ "pvr.ccz" CC_CALLBACK_1(LoadingScene::pvrPlistimageAsyncCallback,monospace!important; Font-size:1em!important; min-height:inherit!important">)); LoadingScene::pvrPlistimageAsyncCallback(cocos2d::Texture2D*texture) { SpriteFrameCache::getInstance()->addSpriteFramesWithfile(reloadPvrPLists[curReloadPvrPListNum].append( curReloadPvrPListNum++; ; 4.Cocos Studio导出的.ExportJson后缀的动画文件 |
评论列表(0条)