从SWC

2011-06-01 40 views
0

创建动态类包含的位图数据位图,我有以下代码从SWC

///Get BitmapData from library in SWC 
var ClassReference:Class = getDefinitionByName(products[i].producticon+"Data") as Class; 
// Create new BitmapData Instance From it 
var bitMapS:BitmapData = new ClassReference(); 
// Create new Class that contains Bitmap Data 
var IconBitmap:Class = new AndroidAsset(bitMapS) as Class; 
// Get String name from Class 
var s:String = getQualifiedClassName(IconBitmap); 
trace(s); 

我在跟踪得到空。如何制作一个动态类,我可以参考这个位图,类似于如何引用一个类和嵌入式媒体?

回答

0

我不确定我完全理解你的问题,但它听起来像你想以类似于创建类的新实例的方式获取此位图数据的副本。如果是这样的话,你可以做这样的事情:

//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