有没有办法在不将其添加到当前视图的情况下创建BarChart(在后台)?我基本上有一个图表,我需要转换为图像并将其添加到PDF报告(使用AlivePDF)。
答案 0 :(得分:2)
不,您必须将图表添加到显示列表中。
必须将DisplayObject
添加到显示列表中才能呈现为位图(即打印或将其发送到PDF)。
内部AlivePDF使用BitmapData.draw(...);
method,要求对象位于显示列表中,并visible=true
才能呈现出来。
如果您不希望在生成PDF(或打印)时图表显示在舞台上,则可以将图表添加到父容器中并隐藏父图像。
以下是如何执行此操作的示例:
var box:VBox = new VBox();
// Hide the parent, not the chart.
// If you set chart.visible = false then it won't show up in the PDF.
box.visible = false;
box.addChild(chart);
addChild(box);
// You might need to force validation here so the chart has the correct size.
box.validateNow();
// Add chart to PDF.
pdf.addImage(chart);
// TODO: Clean up your display items here.
box.removeChild(chart);
removeChild(box);
box = null;