重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
今天项目接近收尾阶段,开始对项目的资源进行整合打包,并对其进行缓存!但还是让我遇见一些坑!
成都创新互联公司成立于2013年,先为任丘等服务建站,任丘等地企业,进行企业商务咨询服务。为任丘企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。第一个坑是,图片都打包成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。。。
缓存资源可以根据界面,分批加载需要显示的资源!!!!!
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。