0

アプリの背景がありますが、ボタンをクリックすると変更され、別のボタンを使用する必要があります。

それぞれがキャッシュに16MBを超えるサイズを持ち、30の異なる背景があるため、それらすべてをsharedTextureCacheに追加することはできません。

ロード時間を使わずにバックグラウンドを切り替えるための最良の方法は何ですか?そのボタンをクリックするときにユーザーを待たせたくありません。

ありがとう

4

3 に答える 3

2

未使用のデータをすべて削除します。またはテクスチャ...

[[CCDirector sharedDirector] purgeCachedData];
[[CCTextureCache sharedTextureCache] removeAllTextures];
[CCTextureCache purgeSharedTextureCache];
[[CCSpriteFrameCache sharedSpriteFrameCache] removeSpriteFrames];
[CCSpriteFrameCache purgeSharedSpriteFrameCache];
于 2012-09-05T13:20:45.087 に答える
1

次に表示される背景がわかっている場合は、事前に事前に読み込むことができます。各網膜デバイスは、約100メガバイトのメモリ(約5つのスプライトシート2048x2048)を使用できます。この場合、メモリ警告を受け取り始めますが、アプリは安定して動作します。共有テクスチャキャッシュに対して非同期で作成できるすべてのプリロード。呼び出して未使用のテクスチャをクリーンアップすることを忘れないでください

[[CCTextureCache sharedTextureCache] removeUnusedTextures];

不要なテクスチャを強制的にアンロードします。

于 2012-09-04T11:16:37.670 に答える
0

私がアプリの速度を落とさないようにした唯一の方法は、次の行を使用することでした。

[_background setTexture: [[CCTexture2D alloc] initWithImage:...]]

非同期でも共有テクスチャキャッシュを使用しようとすると、アプリの速度が低下します。:-O

于 2012-09-05T16:15:31.133 に答える