Столкнулся с той же проблемой, что и ТС. Решил ее примерно так:

Код AS3:
public static function drawStr(str:String = "test", textFormat:TextFormat = null, color:uint = 0xFF000000):Bitmap
{
var myText:TextField = new TextField();
myText.text = str;
if (textFormat != null) myText.setTextFormat(textFormat);
myText.width = myText.textWidth + 16; // с запасом в 16 пикселей
myText.height = myText.textHeight + 16;
var outBack:BitmapData = new BitmapData(myText.textWidth+16, myText.textHeight+16, true, 0x00CCCCCC);
outBack.draw(myText);
var resultRect:Rectangle = outBack.getColorBoundsRect(0xFFFFFFFF, color);
resultRect.width +=2; //тут делаю рамку в 1 пиксель
resultRect.height += 2; //т.к. крайние пиксели иногда не соответсвуют цвету
resultRect.x -= 1; // основного текста из-за сглаживания
resultRect.y -= 1;
var mySprite:Sprite = new Sprite();
mySprite.addChild(myText);
mySprite.scrollRect = resultRect;
var outBackFinal:BitmapData = new BitmapData(resultRect.width, resultRect.height, true, 0x00CCCCCC);
outBackFinal.draw(mySprite);
return new Bitmap(outBackFinal);
}
Может быть есть предложение как это оптимизировать? Или знаете более простое решение?