我正在为我的应用程序使用amCharts。最近,我将其从版本3.17.0更新到了3.20.6

在我的应用程序中,我使用了capture方法导出以捕获图像,如下所示:

if (window.fabric) {
                    clearTimeout(interval);

                    // CAPTURE CHART
                    chart.export.capture({}, function() {

                        // SAVE TO JPG
                        this.toPNG({}, function(base64) {

                            //some code
                                                    });
                    });
                }
 }, 10);


在我的带有Chart光标的序列图中,它在以前的版本中工作正常。查看图片:javascript - amCharts中的序列图显示了不同的行为-LMLPHP

更新版本后,它显示出奇怪的行为:ChartCursor消失了,并且在拖动光标时在Chart上绘制了线。 javascript - amCharts中的序列图显示了不同的行为-LMLPHP

我已经在amChart网站上检查过,我已经正确设置了所有内容。

这里有什么问题?

如果我禁用chart.export.capture,它将正常工作。
这是我设置属性图表的代码:

"type": "serial",
                "theme": "none",
                "pathToImages": "resources/javascript/amcharts/images/",
                "marginTop": 1,
                "marginBottom": 1,
                "autoMarginOffset": offsetM,
                //left hand side space between container and chart
                "zoomOutButtonRollOverAlpha": 0.15,

                "zoomControl": {
                    "zoomControlEnabled": true,
                    "backgroundAlpha": "0.15",
                    "backgroundColor": "#000000"
                },

                "dataProvider": valueChartData,
                "columnWidth": 1,
                "categoryField": "date",
                "categoryAxis": {
                    "minPeriod": "DD",
                    "parseDates": true
                },

                "export": {
                    "enabled": false,
                    "menu": []
                }


用于导出和克隆图表:

var interval = setInterval(function() {
                    if (window.fabric) {
                        clearTimeout(interval);

                        // CAPTURE CHART
                        main.pageContainerBulkMarketing.bulkmarketing.pageContainerBMReports.reports.chart["export"].capture({}, function() {

                            // SAVE TO JPG
                            this.toPNG({}, function(base64) {

                                somewhere.OpenedTabGrpClone = "";
                                somewhere.OpenedTabGrpClone = base64;
                            });
                        });
                    }
                }, 10);


注意:我观察到了一件事:它在我们的图表div上添加了一个canvas标签,就像:

<canvas class="upper-canvas " style="position: absolute; width: 802px; height: 360px; left: 0px; top: 0px; -moz-user-select: none; cursor: crosshair;" width="802" height="360"></canvas>


更新:在这里我添加了jsfiddle,但是,在这里工作正常,我花了时间弄清楚为什么它对我不起作用。结果:无。

最佳答案

简单做到这一点

1)检查您的库链接和插件代码,可能会干扰其他js或插件。

2)同时使用实时amchart库测试您的代码。

3)如果一切正常,并且将canvas标签的Z索引设置为-1。

07-26 00:20