如何从Open Flash Chart 2获取图像?

时间:2009-07-13 12:24:13

标签: javascript charts

我从他们的homepag(http://teethgrinder.co.uk/open-flash-chart-2/adv-upload-image.php)尝试了教程,但这根本不起作用。我的服务器端工作正常,但是当我尝试获取ofc的实例并调用post_image时,Firefox会发出以下错误“ofc.post_image不是函数”。这个问题有解决办法吗?

2 个答案:

答案 0 :(得分:1)

我有同样的问题,我解决了它只是为Kvasir版本更新open-flash-chart.swf(之前我使用的是Jörmungandr版本)。看起来旧版本已损坏,并且不允许访问AS外部函数。我还需要在我的浏览器(firefox)上清除缓存数据和cookie,以便获取新的swf。我有一个新问题,获取flash图表2图像,数据上传到我的服务器,png保存在文件系统,但post_image的回调函数永远不会被触发,我的代码类似于ofc2站点样本:

function done(id){
alert("Finished upload. Id:"+id);}

function post_chart_image(chart_png_name){
url =  context + '/swtMktShare/uploadChartImage.html?chartImgFileName='+chart_png_name;
var ofc = findSWF("my_chart1");
x = ofc.post_image( url, 'done', false);}

在服务器端我正在使用Spring MVC作为响应我得到了png生成文件的完整路径

答案 1 :(得分:1)

我在尝试教程时遇到了同样的问题。在该行:

x = ofc.post_image( url, 'done', debug );

我在浏览器上收到此错误:Object doesn't support this property or method

我在这些方面找到了问题:

function findSWF(movieName) {
    if (navigator.appName.indexOf("Microsoft")!= -1) {
        return window[movieName];
    } else {
        return document[movieName];
    }   
}

在if检查中,它在我的情况下返回return window[movieName],因为我的浏览器是IE8。

我刚刚删除了if check并使用了return document[movieName]

function findSWF(movieName) {
    return document[movieName]; 
}

这解决了我的问题,我现在可以将图表保存为图像。