关于 quick cocos2d-x 3.2rc0 资源压缩后解压问题

本人使用quick-x 3.2rc0版本里面quick/bin 目录下的pack_files脚本给资源进行压缩操作,将两张png打包成了一个zip,然后在程序中使用 pStack->loadChunksFromZIP(“res/pic.zip”);进行解压,但是控制台输出结果两张图片获取都出错误:
cocos2d: load “partner1.png”, error: syntax error during pre-compilation.
cocos2d: load “princess.png”, error: syntax error during pre-compilation.
cocos2d: lua_loadChunksFromZIP() - loaded chunks count: 0

脚本的解压没有问题。之前用quick-x 2.2.5的时候也没问题,求大神解答

版本是 quick-3.2rc1 打错了…

pack_files主要是加密用的。如果资源打包需要自己解压使用,不能使用loadChunksFromZIP,那个是载入脚本的接口。

你好。我刚看了下,我个人觉得这个函数的功能应该就是把一个指定的zip文件包含的内容存放到了缓冲区,以后读取的时候会更快,函数的实现部分是针对加密或未加密的zip到最后都执行了一个ZipFile::createWithBuffer(zipFileData, size)。最后通过Lua去读取缓冲区的内容,跟是否是脚本载入没什么关系。脚本载入的接口是executeScriptFile()

到ZipFile::createWithBuffer为止你的分析是对的,但后面的luaLoadBuffer就是在载入脚本了。
如果你需要自己解压,当然可以自己写代码调用ZipFile::createWithBuffer。
但loadChunksFromZIP函数本来就是设计给脚本载入用的,从两个方面就能看出来,一个是函数里的Chunk,这是lua用来特指代码块的;另一个,这个函数是在LuaStack类里的,这个类实际上就是Lua虚拟机的加载类。

原来如此 非常感谢