У меня есть пользовательский класс Image
, который я использую для хранения информации об отдельных изображениях для приложения галереи:
package mtm.test
{
public class Image extends Object
{
public var id:int;
public var filename:String;
public var title:String;
public var description:String;
public var thumbExists:int;
public var mediumExists:int;
public var fullExists:int;
}
}
Для управления растровыми изображениями трех разных размеров я создал следующий базовый класс (BitmapType
) и три подкласса (BitmapThumbnail
, BitmapMediumSize
, BitmapFullSize
):
package mtm.test
{
import flash.display.Bitmap;
import flash.display.BitmapData;
public class BitmapType extends Bitmap
{
public function BitmapType(bitmapData:BitmapData = null, pixelSnapping:String = 'auto', smoothing:Boolean = false)
{
super(bitmapData, pixelSnapping, smoothing);
}
}
}
package mtm.test
{
import flash.display.BitmapData;
public class BitmapFullSize extends BitmapType
{
public function BitmapFullSize(bitmapData:BitmapData = null, pixelSnapping:String = 'auto', smoothing:Boolean = false)
{
super(bitmapData, pixelSnapping, smoothing);
}
}
}
package mtm.test
{
import flash.display.BitmapData;
public class BitmapMediumSize extends BitmapType
{
public function BitmapMediumSize(bitmapData:BitmapData = null, pixelSnapping:String = 'auto', smoothing:Boolean = false)
{
super(bitmapData, pixelSnapping, smoothing);
}
}
}
package mtm.test
{
import flash.display.BitmapData;
public class BitmapThumbnail extends BitmapType
{
public function BitmapThumbnail(bitmapData:BitmapData = null, pixelSnapping:String = 'auto', smoothing:Boolean = false)
{
super(bitmapData, pixelSnapping, smoothing);
}
}
}
Вот как я бы реализовал выше:
var image:Image = new Image();
//I would be loading external bitmaps but for the example I'll just create new ones:
image[BitmapThumbnail] = new BitmapThumbnail(new BitmapData(65,65,false,0x000000));
image[BitmapMediumSize] = new BitmapMediumSize(new BitmapData(200,200,false,0x000000));
image[BitmapFullSize] = new BitmapFullSize(new BitmapData(500,500,false,0x000000));
Есть ли более простой способ сделать это?Я чувствую, что внутри подклассов BitmapType
есть много повторяющегося кода.
По крайней мере, это помогает избежать множества циклов for, пытающихся найти запрошенный размер, и кажется переносимымситуации, когда требуется больше или меньше размеров растровых изображений.