【发布时间】:2011-01-07 08:43:35
【问题描述】:
我正在尝试将由一些文本生成的图像放在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,这就是无法创建BitmapData的原因。在我以前的 Java 世界中,我会调用 pack()(或类似的东西)来强制组件布局。但在这里,它似乎并不存在。那么,我怎样才能让我的组件可绘制呢?
标签: apache-flex flex4 capture