Страница 1 из 1

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

Добавлено: 19 ноя 2014, 08:34
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.
Для звуков всё аналогично.

Может есть другой, лучший способ, чем предложенный мной?

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

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