将Flex条形图转换为图像而不进行渲染

时间:2011-10-06 21:30:56

标签: flex actionscript charts flexbuilder bar-chart

有没有办法在不将其添加到当前视图的情况下创建BarChart(在后台)?我基本上有一个图表,我需要转换为图像并将其添加到PDF报告(使用AlivePDF)。

1 个答案:

答案 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;