我正在尝试将一些文字生成的图片放在RichEditableText中。由于它是一个样式文本,我想把它放到另一个RichEditableText中,然后将它打印出来,然后将其打印到Bitmap以用作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没有显示在可见组件中。 我怎样才能确保布局合理?
我是否正确地将文本转换为图像?
答案 0 :(得分:1)
你是对的;因为文本不在显示列表中,所以它永远不会被验证,因此具有0高度和宽度。
一个典型的解决方法是将项目添加到显示列表中,然后将其删除immediatley。在this SO question中进行更多讨论。
答案 1 :(得分:0)
你应该追踪txt.width和txt.height。它们必须至少大于或等于1。 DisplayObject是否可见无关紧要。