今天项目接近收尾阶段,开始对项目的资源进行整合打包,并对其进行缓存!但还是让我遇见一些坑!
第一个坑是,图片都打包成plist,在项目里有些图片提示找不到。log打印如下信息
Get data from file(level_lives.png) failed, error code is 2
我就蛋疼了,后来看了下找不到的图片都是因为创建的精灵,改变纹理用到setTexture,getTexture相关的接口。猜测是这里出了问题,把这些接口改成setSpriteFrame,getSpriteFrame之类的,就没问题了!
因为我缓存都是plis文件,看了下Sprite::create里面的代码,会在创建精灵的时候调用的下面这段代码:
Texture2D *texture = Director::getInstance()->getTextureCache()->addImage(filename);
所以只有create创建的精灵或者自己用TextureCache加入缓存,改变纹理才能调用setTexture,getTexture相关的接口。
用SpriteFrameCache加入缓存的,改变纹理只能调用setSpriteFrame,getSpriteFrame之类的。
第二坑是发现音乐和音效其实不用预加载!!!!去看引擎代码,发现preloadBackgroundMusic是空的。。。。再看preloadEffect是有内容的,但在playEffect时候会调用preloadEffect。。。
缓存资源可以根据界面,分批加载需要显示的资源!!!!!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。