Цитата:
Сообщение от Godwarlock
Всё. Тут мы добавили объект и сам класс объекта кидаем в вектор. И таких вот объектов создается 2000+. И даже если оставить из 2000, только декорации, коих 140шт, фпс все равно проседает на ноуте до 30-40.
|
Ну, кидаете в вектор вы, скорее всего не
класс, а тот же самый объект (экземпляр класса), это должно быть очевидно. Очень неграмотно звучит.
Ставьте cacheAsBitmap у этих мувиклипов. Они изначально векторные. Но есть известные ограничения. Прочитайте про cacheAsBitmap.
Цитата:
|
пробегаемся по вектору с этими объектами и меняем его состояние видимости/невидимости, вызывая выше перечисленные функции удаления/добавления объектов для каждого экземпляра в массиве. Вызывать эту функцию только при движении персонажа или каждый кадр, не влияет ни на что. Проверено.
|
Удаление объекта из памяти влечет за собой срабатывание garbage collector. Этот процесс занимает серьёзное количество времени.
Добавление (создание) объекта зановно тоже отнимает время. Выделение памяти средствами ОС и все такое. Причем визуально это тот же самый объект.
Чтобы не рендерить визуальный объект воспользуйтесь его свойствами и выставьте: alpha = 0.0 или visible = false. Различие только в хиттесте для Mouse. Не удаляйте через removeChild. Вызов любого метода сам по себе накладен. Вам же нужно следить за тем, чтобы количество объектов не превысило условную величину.
Ну, я к тому, что иногда все-таки нужно удалять "лишние" объекты из памяти. Я очень четко это понял, когда работал с мобилками. Нам OS выделяла 256 Мб памяти или благополучно нас выгружала, если мы превышали эту квоту.
Проверьте ваше приложение через профилировщик Adobe Scout. Этот инструмент должен стать обыденностью для вас.