cocos2d-x的AssetsManager分析

来源:互联网 发布:聊天室源码 编辑:程序博客网 时间:2024/05/16 12:10

源码相关文件路径:

C:\dev\cocos2d-2.1rc0-x-2.1.2-hotfix\extensions\cocos-ext.h

C:\dev\cocos2d-2.1rc0-x-2.1.2-hotfix\extensions\AssetsManager\AssetsManager.h

C:\dev\cocos2d-2.1rc0-x-2.1.2-hotfix\extensions\AssetsManager\AssetsManager.cpp


引用方法:

#include "cocos-ext.h"

#include "AssetsManager.h"

using namespace cocos2d::extension;


Additional Include Directories:

C:\dev\cocos2d-2.1rc0-x-2.1.2-hotfix\extensions

C:\dev\cocos2d-2.1rc0-x-2.1.2-hotfix\extensions\AssetsManager


Additional Library Directories:

C:\dev\cocos2d-2.1rc0-x-2.1.2-hotfix\Debug.win32


Additinal Dependencies:

libcurl_imp.lib

libExtensions.lib


该AssetsManager的基本流程:

1. 配置需要更新的zip的URL,更新版本号的URL,更新存放的相对路径

2. 从Server获取该zip文件的版本号

3. 对比Client中的UserDefault.xml中current-version-code键的值(当前版本号)是否过期

4. 若Server的版本比Client的新,则通过http请求下载该zip

5. 解压缩该zip文件

6. 下载后通过CCFileUtils的fullPathForFilename方法来获取文件的引用


下载流程:

update():

1. 配置的zip的URL和version的URL必须合法,且非空

2. 检验Server是否存在新版本

3. 读取UserDefault.xml的downloaded-version-code,对比当前版本号,若不相等则进行zip包下载

4. 若下载完成,记录最新的版本号于UserDefault.xml的downloaded-version-code中,并flush刷新

5. 解压缩zip包

6. 若解压成功,记录最新的版本号于UserDefault.xml的current-version-code中,并把downloaded-version-code删除,并flush刷新

7. 设置搜索路径,(先获取搜索路径vector,然后将新的搜索路径插入到该vector中,将该vector重新放入CCFileUtils中)

8. 删除未加载的cocos2dx-update-temp-package.zip文件