我不确定我完全理解你的问题,但它听起来像你想以类似于创建类的新实例的方式获取此位图数据的副本。如果是这样的话,你可以做这样的事情:
//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
来源
2011-06-02 00:05:43
Ian