 			
 			var bitmapData:BitmapData;
 			
+			if (value is Class)
+			{
+				var cls:Class = Class(value);
+				value = new cls();
+			}
+			else if (value is String)
+			{
+				var tmpClass:Class = Class(getDefinitionByName(String(value)));
+				value = new tmpClass();
+			}
+			
 			if (value is BitmapData)
 			{
 				bitmapData = BitmapData(value);
 			}
-			else if (value is Class)
-			{
-				var cls:Class = Class(value);
-				tmpSprite = new cls();
-			}
 			else if (value is Bitmap)
 			{
 				bitmapData = value.bitmapData;

				
			if (!bitmapData && tmpSprite)
			{
				bitmapData = new BitmapData(tmpSprite.width, tmpSprite.height);
				bitmapData.draw(tmpSprite, new Matrix());
			}
			

			else if (value is DisplayObject)
			{
				tmpSprite = value as DisplayObject;
			}
			else if (value == null)
			{
