Я не уверен, что понимаю ваш вопрос точно, но звучит так, будто вы хотите получить копию этих растровых данных способом, аналогичным созданию нового экземпляра класса.Если это так, вы можете сделать что-то вроде этого:
//grab the name of the asset as a string
var bitmapDataAssetName:String = products[i].producticon+"Data";
//get the asset definition from the SWC
var CustomBitmapDataClass:Class = getDefinitionByName(bitmapDataAssetName) as Class;
//store it in an associative array or dictionary for use later
var myBitmaps:Array = [];
myBitmaps[bitmapDataAssetName] = CustomBitmapDataClass;
//then instantiate new bitmaps from the class definition that's stored in your array
var testBitmapData:BitmapData = new (myBitmaps[bitmapDataAssetName] as Class)() as BitmapData;
Таким образом, в сценарии практического использования ваш массив определений символов будет переменной-членом некоторого класса BitmapManager или чего-то еще.Затем, если вы хотите сделать его доступным из любого места в вашем приложении, просто сделайте его одноэлементным и просто - создайте экземпляр нового библиотечного ресурса из SWC в любом месте, где вам это необходимо, с помощью вызова, подобного этому:
var localBitmapData:BitmapData = new (BitmapManager.instance.definitions[theNameOfTheBitmapIWant] as Class)() as BitmapData;
Или лучший способ сделать это - добавить метод в BitmapManager, такой как
public function getBitmapAsset(assetName:String):BitmapData {
var symbolDefinition:Class = myBitmaps[bitmapDataAssetName] as Class;
return new symbolDefinition() as BitmapData;
}
, чтобы вы могли просто вызвать его так:
var localBitmapData:BitmapData = BitmapManager.instance.getBitmapAsset("theNameOfTheBitmapIWant");
Надеюсь, чтопомогает (если это был даже ваш вопрос для начала): P