我从他们的homepag(http://teethgrinder.co.uk/open-flash-chart-2/adv-upload-image.php)尝试了教程,但这根本不起作用。我的服务器端工作正常,但是当我尝试获取ofc的实例并调用post_image时,Firefox会发出以下错误“ofc.post_image不是函数”。这个问题有解决办法吗?
答案 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];
}
这解决了我的问题,我现在可以将图表保存为图像。