CCComRender.cpp中,通过文件扩展名来判断render的类型。例如
filePath.find(".png") != std::string::npos
其中filePath是 cocos2d::CCFileUtils::getInstance()->fullPathForFilename(file) 返回的结果,其路径中可能不包含原先的扩展名信息了。
这里应该用 file 代替 filePath 更好一些。
fullPathForFilename()返回结果不包含原始的扩展名,主要是这种场景:
很多游戏,尤其是联网游戏,都需要可以动态的更新资源。而更新下来的资源,都是存在SD卡上的。
如果其中包含图片,那么手机会把这些图片显示在手机的图库里,用户就可以随意的浏览或者删除,这是开发者不愿意看到的。
所以一个文件,比如a.png,存储在卡上的名字可能已经不是 .png,而是其他的,比如 a.myimage 等。然后就会出现上面的问题。
当然,这个问题也可以有其他方式解决,比如下载的资源可以打包在zip里等。但既然FileUtils提供了getNewFileName()和FilenameLookupDictionary,那么
就应该尽量的遵从这个设计原则。所以希望能得到解决。