2013-06-09 2 views
0

Я заметил, что вызов метода «purgeSharedAnimationCache» устанавливает значение «sharedAnimationCache_» в nil.CCAnimationCache: как его использовать?

+(void)purgeSharedAnimationCache 
{ 
    [sharedAnimationCache_ release]; 
    sharedAnimationCache_ = nil; 
} 

Что происходит, когда я пытаюсь добавить новую CCAnimation в CCAnimationCache? Будет ли это создавать новый «sharedAnimationCache»?

ответ

1

Да, это будет. Чистите тщательно или совсем нет, поскольку в кеше анимации редко хранится сколько-нибудь значительная часть памяти.

+0

Время от времени я публиковал сообщение об ошибке, где я не мог получить имя фрейма текстуры из gluint. Я обнаружил, что каждый раз, когда я менял сцену (через replaceScene), CCAnimationCache держал ссылку на предыдущие анимации, и, поскольку новая сцена имела одно и то же имя для этих анимаций, сбой, поскольку не находил правильное имя файла пакета , Поэтому я решил добавить вызов «purgeSharedAnimationCache» в методе init каждого нового GameScene, и это помогает (http://stackoverflow.com/questions/15208275/how-can-i-retrieve-the-corresponding-texture-name- из-а-GLuint). – mm24

+0

@ LearnCococs2D Есть ли учебное пособие, объясняющее, что такое CCAnimationCache и как мы должны обрабатывать его во время изменений GameScene в отношении изображений, загружаемых в кеш кадров? (Другими словами, чтобы избежать сбоя приложения, если анимация все еще работает, пока сцена меняется? Этот ответ немного помог мне: http://stackoverflow.com/questions/17098141/cocos2d-and-concurrency-how -в-должным стоп-анимации, между сценами) – mm24

Смежные вопросы