Non ce n'était pas un problème de couleur. J'ai également eu la couleur réglée à FF000000 qui au moins aurait dû montrer le noir. TextArea n'a pas semblé bien jouer avec les bitmaps, bien que TextField fonctionne parfaitement bien. Editer: Je suppose que TextArea ne fonctionnait pas comme étincelle ou mx parce qu'ils sont une chose FlexSprite, qui agissent différemment des sprites AS3 normaux. Ils différeront le rendu jusqu'à ce qu'ils soient ajoutés à la liste d'affichage.
Fonction de travail:
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;
}
Ce ne fonctionnait pas (j'ai essayé mx & composants textarea d'allumage):
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;
}
Cependant, il travaillerait lors de l'élaboration de la scène:
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;
}
Je ne vois pas comment vous pouvez enregistrer une donnée bitmap sans la générer d'abord. Essayez de rendre le texte à un moment donné hors de la scène où il n'est pas visible, puis retirez-le plus tard. – loxxy