Показать сообщение отдельно
Старый 16.03.2012, 10:51
kimagg вне форума Посмотреть профиль Отправить личное сообщение для kimagg Найти все сообщения от kimagg
  № 5  
Ответить с цитированием
kimagg

Регистрация: Feb 2012
Сообщений: 18
Столкнулся с той же проблемой, что и ТС. Решил ее примерно так:
Код 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);
}
Может быть есть предложение как это оптимизировать? Или знаете более простое решение?