0

テキストから生成された画像をRichEditableTextに入れようとしています。これはスタイル付きのテキストなので、別の RichEditableText を配置してスタイルを設定し、ビットマップに出力して InlineGraphicsElement のソースとして使用することを考えました。

私はそれを行うために次のコードを使用します

var txt:RichEditableText = new RichEditableText();
txt.text = name;
// Appliy given styles to the text flow of input rich editable text
createApplyNamedStyle(name, styles).call(null, txt.textFlow);
var bitmapData:BitmapData = new BitmapData(txt.width, txt.height);
bitmapData.draw(txt);
var bitmap:Bitmap = new Bitmap(bitmapData);

残念ながら、呼び出されるとエラースタックが表示されます

ArgumentError: Error #2015: BitmapData non valide.
at flash.display::BitmapData()
at RichTextEditor/getTagImage()[E:\FlexWorkspace\Test\src\RichTextEditor.mxml:74]
at RichTextEditor/insertTag()[E:\FlexWorkspace\Test\src\RichTextEditor.mxml:154]

これは、RichEditableText がコンポーネントに表示されていないため、配置されていないことが原因であると思われます。適切にレイアウトされていることを確認するにはどうすればよいですか?

そして、テキストを画像に変換するために正しいことをしていますか?

4

2 に答える 2

1

あなたが正しい; テキストはディスプレイリストにないため、検証されることはなく、高さと幅は0になります。

一般的な回避策は、アイテムを表示リストに追加してからすぐに削除することです。このSOの質問でもう少し議論します。

于 2010-01-20T19:12:46.927 に答える
0

txt.width と txt.height をトレースする必要があります。それらは少なくとも 1 以上でなければなりません。DisplayObject が表示されているかどうかは問題ではありません。

于 2010-01-20T16:33:48.940 に答える