AssetManagerExを使ってみた。
公式:
http://www.cocos2d-x.org/wiki/Assets_manager
まとめ
用意するもの。
マニフェストファイル=3種
- ローカル:マニフェスト <初回起動時に読み込む。バージョンや、リモートにあるマニフェストのアドレスが必要。
- リモート:バージョンマニフェスト <バージョン情報などを書く。
- リモート:マニフェスト <バージョン情報などに加えてダウンロードさせたいファイルの情報を書く。
初回実行時:
ローカルのマニフェストから情報を取得。
リモートのマニフェストを二つ共ダウンロードする。
(書き込み可能領域に保存される。)
バージョン情報、ファイル情報が共に更新されていた場合。
そのファイルをダウンロードしてくる。
ダウンロード完了後
リモートのマニフェストファイルが保存される。
保存時のファイル名は規定の物がつけられる。
project.manifest
version.manifest
実行
auto am = AssetsManagerEx::create( "project.manifest", writablePath()+"folder" );
am->retain();
am->update();
AssetManagerExに関連するイベントの取得方法。
EventAssetsManagerEx
EventListenerAssetsManagerEx
不明点のメモ
マニフェストの以下の項目の用途
"searchPaths" : [
]
以下、失敗時のメモ
urlやファイルについて記述したマニフェストファイルを用意する。
これをサーバーに保存した。
中身。
実装コード
1
auto am = AssetsManagerEx::create(manifest_url, path);
am->update();
失敗した。
cocos2d: fullPathForFilename: No file found at image/project.manifest. Possible missing file.
project.manifestファイルが存在しないと言われる。
どうやら、設定したストレージパスの中に"project.manifest"を配置する必要があるらしい。
_cacheManifestPath = _storagePath + MANIFEST_FILENAME;
解決:
とりあえず、サーバーに保存したものと同じものエラーで示された場所に置くことにする。
失敗した。
cocos2d: fullPathForFilename: No file found at https://example/ex_project/resource/version.manifest. Possible missing file.
なので、今度は version.manifest を配置します。
と思いきや、、、待てと、
なぜURLが表示されている? マニフェストに記述した値が間違ってるかもしれません。
解決:
AssetsManagerEx::create(manifest_url, path);
この時に渡す 第1パラメータはurlではなくversion.manifestのファイルパスだった。
失敗した
cocos2d: fullPathForFilename: No file found at image/project.manifest.temp. Possible missing file.
内部的にはtempとして一旦DLしたマニフェストファイルを保存しているっぽい。??
違う、意味不明。
そもそも、その前にエラーが出ていた、これはなんだ
File parse error 10 at <\235,
"re>
ただただ、マニフェストファイルの記述が間違っていた。"!=”
振り出しに戻る。
やはりversion.manifestが存在しないところから始まる。
・・・
まずはダウンロードが始まらないということが問題。
バージョンパラメータの比較で同値になってる何故だ
ローカル0
リモート2
比較時=0
リモートはどこいった?