cocos2dx 3.3 AssetsManager简单分析
发布时间:2020-12-14 16:52:40 所属栏目:百科 来源:网络整理
导读:文件分析 AssetsManager 更新总控,一个文件搞定所有更新步骤 下面这一堆,完成跟上面一个文件类似的工作,只是做了更好的封装,需要用到指定格式的Manifest 用Manifest做配置文件 用Downloader做下载器 用CCEventAssetsManagerEx做流程事件分发 用CCEventLi
文件分析AssetsManager 更新总控,一个文件搞定所有更新步骤下面这一堆,完成跟上面一个文件类似的工作,只是做了更好的封装,需要用到指定格式的Manifest 用Manifest做配置文件 用Downloader做下载器 用CCEventAssetsManagerEx做流程事件分发 用CCEventListenerAssetsManagerEx做流程事件处理 用AssetsManagerEx做逻辑总控制 AssetsManagerEx 逻辑入口,总控 CCEventAssetsManagerEx 事件分发 CCEventListenerAssetsManagerEx 事件监听 Downloader 下载器,内部还是curl Manifest 做文件版本比较用 更新流程这部分只分析AssetsManager 的更新流程,下面那一堆所做的流程类似。
update--自动更新流程 checkUpdate--开启线程做downloadAndUncompress checkUpdate--检测更新 curl初始化--连接获取版本文件--出错,NETWORK错误--版本比较--相同,NO_NEW_VERSION错误--不同,返回true downloadAndUncompress--下载并解压文件 downLoad下载更新文件--出错,直接结束--将下载版本号记录到本地--uncompress解压--出错,UNCOMPRESS错误--本地版本号替换为新版本--清除下载版本号--设置搜索路径(把保存下载文件的路径加入到搜索路径中)--删除下载的更新文件--通知更新结束 几个value 用UserDefault保存的几个value #define KEY_OF_VERSION "current-version-code" // 本地文件版本号 #define KEY_OF_DOWNLOADED_VERSION "downloaded-version-code" // 正在下载的版本号,主要用于下载中断时记录用 downLoad--下载 创建文件--出错,CREATE_FILE错误--curl连接,开始从下载地址下载文件--出错,NETWORK错误--下载结束后将数据写入到文件--关闭文件 uncompress--解压文件 unzOpen--unzGetGlobalInfo--zip内各文件解压【unzGetCurrentFileInfo--如果是文件夹,createDirectory--unzOpenCurrentFile--创建文件--unzReadCurrentFile--将数据写入到文件--关闭文件--unzCloseCurrentFile--unzGoToNextFile】解压结束--unzClose 以上解压过程,中间任何一步出错,直接结束解压(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |