Многократноиспользуемые изображения и звуки

То что касается флеша, но не касается ВКонтакте API. Например проблемы при создании прыгающего мячика.
Ответить
Agiliter
Сообщения: 112
Зарегистрирован: 01 фев 2014, 13:46

Многократноиспользуемые изображения и звуки

Сообщение Agiliter »

Добрый день! Возникла задача многократного использования одинаковых изображений и звуков. И, соответственно, возник вопрос как организовать их загрузку так, чтобы потом использовать только их копии, а не грузить по-новой.

Копии изображений можно, как понимаю, делать с помощью clone() от одного BitmapData, а звуки - просто создавая новые SoundChannel от одного Sound. Таким образом, пришел к выводу, что нужно каким-то образом хранить список уже загруженных BitmapData и Sound. Что и составляет основной вопрос. Например, изображения. Пришло в голову создать отдельный класс ImageManager, в нем задать public static переменные

Код: Выделить всё

public static image1:Bitmap;public static image2:Bitmap;...public static image100:Bitmap;
метод

Код: Выделить всё

public static createImage(objBitmap:Bitmap):Bitmap{    var clonedChild:BitmapData = objBitmap.bitmapData.clone();      var copy:Bitmap = new Bitmap(clonedChild);    return copy;}
возвращает копию нужного изображения. Вызов осуществляется примерно так

Код: Выделить всё

var image:Bitmap = ImageManager.createImage(ImageManager.image74);
Правда, не совсем понимаю, как организовать загрузку этой сотни статичных Bitmap.
Для звуков всё аналогично.

Может есть другой, лучший способ, чем предложенный мной?
XELAD
Сообщения: 205
Зарегистрирован: 17 июл 2012, 05:25

Re: Многократноиспользуемые изображения и звуки

Сообщение XELAD »

Можно вместо bmp хранить BitmapData, это займёт меньше памяти. Но функцию createImage нужно будет дополнить.
BitmapData можно хранить в Array ([bmpd1, bmpd2, ...]) и ссылаться на нужную индексом, к примеру ImageManager.createImage(74) , не прописывая public static vars.
Во всяком случае, эту схему я видел в пакете ru.antkarlov.animation.
Ответить