読者です 読者をやめる 読者になる 読者になる

フニゲの開発日記

Electronとか...

purgeCachedDataが無い…


 本の訂正ばかり書いているような気がする。

 ステージ毎に新しいリソースを読み込む場合、前のステージのリソースを削除してメモリを空けなければいけないのだが、cocos2d-xでは cc.Loader.purgeCachedData が使えなかった。なぜだ。
 ぐぐったら「要らないから無いのだ」と言ってる人を見かけたけど、ちょっと意味がよくわからない。もうちょっと勉強しないとだめですね。これは。

 対処法としては、まあメモリを圧迫するのはテクスチャなので、とりあえず removeTextureForKey か removeUnusedTextures を使って、不要なテクスチャをメモリから追い出すようにしておけば十分だと思う。

    stageSelected:function (no) {
        var spriteFrameCache = cc.SpriteFrameCache.getInstance();
        if (Title.currentStage) {
            // 前のステージのデータが残っていたら解放する
            spriteFrameCache.removeSpriteFramesFromFile(Title.currentStage[1].src);

//          cc.Loader.purgeCachedData(Title.currentStage); // これが使えないので
            cc.TextureCache.getInstance().removeUnusedTextures(); // とりあえずこれで
        }

        // 新しいステージのデータを読み込む
        Title.currentStage = this.stages[no];
        ...

 うーん。すっきりしない。本も訂正しないといけないと思うのだが、どうごまかすべきか。

広告を非表示にする