Показать сообщение отдельно
Старый 12.04.2010, 12:39
mickfallout вне форума Посмотреть профиль Отправить личное сообщение для mickfallout Найти все сообщения от mickfallout
  № 8  
Ответить с цитированием
mickfallout
 
Аватар для mickfallout

Регистрация: Jun 2009
Адрес: Москва
Сообщений: 170
Цитата:
У вас по getBitmap - создаётся новая битмпдата.
на Вашем месте я бы при первом вызове помещал битмапдаты в словарь и при последующих вызовах возвращал бы ссылку на неё.
хорошая идея, спасибо. учитывая что удаление баитмапдат мне не нужно - переписал функцию так:
Код AS3:
        static private var bitmapDataObject:Object={};
        static public function getBitmap(imageName:String, width:int=64, height:int=96):Bitmap
        {
            var bitmapData:BitmapData;
            if (bitmapDataObject[imageName + "Width" + width + "Height" + height] != null )
            {
                trace("requested bitmap "+imageName+"("+width+"x"+height+"), give out from bitmapDataObject")
                bitmapData = bitmapDataObject[imageName + "Width" + width + "Height" + height];
            }else {
                trace("requested new bitmap "+imageName+"("+width+"x"+height+"), give out from resourcesLoader")
                var bitmapDatasClass:Class = resourcesLoader.content.loaderInfo.applicationDomain.getDefinition(imageName) as Class;
                bitmapData = BitmapData(new bitmapDatasClass(width, height));
                bitmapDataObject[imageName + "Width" + width + "Height" + height] = bitmapData;
            }
            var bitmap:Bitmap=new Bitmap(bitmapData);
            return bitmap;
        }