Нет, дело не в цвете. Также у меня был установлен цвет FF000000, который, по крайней мере, должен был отображаться черным. TextArea, похоже, не очень хорошо работает с растровыми изображениями, хотя TextField работает отлично.
Изменить: я предполагаю, что TextArea не работает как искра или mx, потому что это штука FlexSprite, которая действует иначе, чем обычные спрайты AS3. Они отложат рендеринг до тех пор, пока не будут добавлены в список отображения.
Рабочая функция:
public function rasterizeText( text:String,
width:int = 100, height:int = 100 ):BitmapData {
var tf:TextField = new TextField();
tf.multiline = true;
tf.wordWrap = true;
tf.width = width;
tf.height = height;
tf.htmlText = text;
var bd:BitmapData = new BitmapData(width, height, true,0x00000000);
bd.draw(tf);
return bd;
}
Это не сработало (я пробовал компоненты mx & spark textarea):
public function rasterizeText( text:String,
width:int = 100, height:int = 100 ):BitmapData {
var textRenderer:TextArea = new TextArea();
textRenderer.width = width;
textRenderer.height = height;
textRenderer.textFlow = TextConverter.importToFlow( text, TextConverter.TEXT_FIELD_HTML_FORMAT );
var bitdata:BitmapData = new BitmapData( width, height, false, 0xFF000000 )
bitdata.draw( textRenderer );
return bitdata;
}
Однако это будет работать при рисовании из сцены:
public function rasterizeText( text:String,
width:int = 100, height:int = 100 ):BitmapData {
var textRenderer:TextArea = new TextArea();
textRenderer.width = width;
textRenderer.height = height;
textRenderer.textFlow = TextConverter.importToFlow( text, TextConverter.TEXT_FIELD_HTML_FORMAT );
canvas.addElement( textRenderer );
var bitdata:BitmapData = new BitmapData( width, height, false, 0xFF000000 )
bitdata.draw( canvas );
return bitdata;
}
person
Lex
schedule
06.08.2012