Я делаю какую-то игру, я использую много графики.
Я делаю класс, который имеет всю графику, например, для меню:
public class MenuGFX
{
[Embed(source = '../../assets/graphics/menu/background.png')]
public static const backgroundGFX:Class;
[Embed(source='../../assets/graphics/menu/startD.png')]
public static const startDGFX:Class;
[Embed(source='../../assets/graphics/menu/startO.png')]
public static const startOGFX:Class;
[Embed(source='../../assets/graphics/menu/startU.png')]
public static const startUGFX:Class;
}
Для загрузки графики из этого я использую функцию:
public class GraphicsLoader
{
private static var graphicsDictionary:Dictionary = new Dictionary();
public static function getGraphic(name:String):Bitmap
{
var bitmap:Bitmap = graphicsDictionary[name];
if (bitmap == null)
{
var cls:Object = getDefinitionByName("Graphics::" + name) ;
bitmap = new (cls);
graphicsDictionary[name] = bitmap;
}
return bitmap;
}
}
Но это работает только тогда, когда я добавляю вручную создание графики: private var backgroundBitmap:Bitmap = new MenuGFX.backgroundGFX;
в класс загрузчика:
public class GraphicsLoader
{
private static var graphicsDictionary:Dictionary = new Dictionary();
private var backgroundBitmap:Bitmap = new MenuGFX.backgroundGFX;
public static function getGraphic(name:String):Bitmap
{
var bitmap:Bitmap = graphicsDictionary[name];
if (bitmap == null)
{
var cls:Object = getDefinitionByName("Graphics::" + name) ;
bitmap = new (cls);
graphicsDictionary[name] = bitmap;
}
return bitmap;
}
}
Я ищу способ избежать создания private var someBitmap:Bitmap = new BitmapName;
. Вы знаете, как с этим справиться?