Вам следует подождать, пока диаграмма закончит рендеринг. После выполнения кода, который выполняет логику перерисовки, отправляется FlexEvent.UPDATE_COMPLETE
. И вы можете увидеть перерисованный график на следующем обновлении экрана. Попробуйте следующий код:
private function someFunc():void
{
//YOU'RE HERE BEFORE CALLING REFRESH
dataprovider.refresh();
chart.addEventListener(FlexEvent.UPDATE_COMPLETE, onUpdate);
}
private function onUpdate(event:FlexEvent):void
{
chart.removeEventListener(FlexEvent.UPDATE_COMPLETE, onUpdate);
callLater(takeScreenshot);
}
private function takeScreenshot():void
{
//TAKE SCREENSHOT LOGIC HERE
}