CocosCreator資源釋放總結

在用CocosCreator做項目的時候,如果項目過大,資源很多,然後,現在我們假設我們這樣設計架構:

1、打開一個界面(預製體)的時候,有關這個預製體的圖片資源也用cc.loader加載進來;

2、關閉這個界面的時候,把有關的圖片用cc.loader.release釋放,如果是公共資源就不釋放;
3、換場景的時候我們選擇自動釋放資源。

上面是一個項目資源過多的項目的架構設計的其中一種方法。

但是上面的方法在CocosCreator中有一點漏洞:這個漏洞就是如果有用cc.loader.loadRes加載了一個預製體,然後切換了場景,再回到這個場景,然後再次loadRes該預製體的時候,你會發現,這個預製體的圖片都顯示成黑塊了。

造成這個問題的原因是:

用cc.loader.loadRes加載了預製體之後,預製體會一直存在內存中,切換場景之後,所以圖片資源釋放;

再切回原場景,再用cc.loader.loadRes加載預製體,此時,用的是內存中存放着的預製體;

但是此時,預製體引用的圖片資源已經釋放,所以是黑塊。

根據網友的問題增加的回答:

我們在切換場景時,圖片資源釋放了,而預製體資源是通過cc.loader.loadRes動態加載的,就不會釋放;

所以我們應該在切換場景時,把cc.loader.loadRes加載的預製體釋放掉。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章