有什么办法捕捉融合图表?

时间:2012-06-29 09:35:16

标签: c# javascript fusioncharts

在这里,我尝试使用javascript在按钮点击上捕获融合图表作为图像 这是我的javascript代码:

var initiateExport = false;

        function exportCharts() {
            var exportFormat = 'JPG';
            initiateExport = true;
            for (var chartRef in FusionCharts.items) {
                if (FusionCharts.items[chartRef].exportChart) {
                    document.getElementById("linkToExportedFile").innerHTML = "Exporting...";
                    FusionCharts.items[chartRef].exportChart({ "exportFormat": exportFormat });

                }
                else {

                    document.getElementById("linkToExportedFile").innerHTML = "Please wait till the chart completes rendering...";
                }
            }
        }

        function FC_Exported(statusObj) {
            if (initiateExport) {
                initiateExport = false;
                document.getElementById("linkToExportedFile").innerHTML = "";
            }

            if (statusObj.statusCode == "1") {

                document.getElementById("linkToExportedFile").innerHTML += "Export successful. View it from <a target='_blank' href='" + statusObj.fileName + "'>here</a>.<br/>";
            }
            else {
                document.getElementById("linkToExportedFile").innerHTML += "Export unsuccessful. Notice from export handler : " + statusObj.notice + "<br/>";

            }
        }

这个问题是在图像捕获之前,进度条显示“捕获数据”。我想绕过它(因为我有另一个代码等待它完成),以便直接在按钮上单击生成的图像。如果它不可能通过javascript有人建议使用 c#

的方法

1 个答案:

答案 0 :(得分:0)

基本上,这些Flash图表需要一些时间来完成从图表的flash显示中捕获图像数据。它不能在一个实例中完成。

这就是进度条出现的原因,它指示了图像数据捕获的进度。

您可以在图表的XML中隐藏进度条设置showExportDialog="0"。但是,内部进展将继续下去。

完成映像捕获后,如果使用服务器端导出,则Flash会将数据发送到服务器端脚本(导出处理程序)。

如果您使用的是客户端导出功能,则Flash图表会引发名为FC_ExportDataReady的事件。您可以在window / global范围内侦听定义具有相同名称的函数的此事件。此事件将图像数据(流)作为JavaScript对象提供。流对象包含RLE格式的图像数据和图像的元数据。

因此,无法使用按钮点击立即生成图表的图像捕捉。这需要一些时间。

这就是提供FC_Exported calback事件的原因,以便您可以收听此事件并获得完成确认,然后继续使用您自己的代码。