六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 27|回复: 0

Fusioncharts的Client端的导出和Event设置

[复制链接]

升级  60%

6

主题

6

主题

6

主题

童生

Rank: 1

积分
30
 楼主| 发表于 2013-2-7 16:03:45 | 显示全部楼层 |阅读模式
最近对Fusioncharts做了封装,使得通过对Java对象的操作生成相应的XML文件,然后利用自定义的Tag实现前端展示。开发的时候选择Fusioncharts的版本是free版,但要实现导出图表的功能,而free版不支持导出,所以只能用3.1的破解版。问题来了,free版支持的DOM,在正式版中不支持,并且XML的文件定义也略有不同,原来直接利用DOM XML的数据就能展示的图表现在不行了,无奈只好写Tag来实现展示。所以,各位如果要封装Fusioncharts并且要更多的功能,不如直接购买正版或者用破解版免得走弯路。free版的功能在正式版中不存在,目的也许是为了公测,感觉有点不靠谱。
 
Client的导出功能
 
下面说导出功能,我们的目的是封装Fusioncharts,使其具有通用性,因此不打算使用Server端的导出功能,直接使用Client端的导出。
 
1.引入JS文件,FusionChartsExportComponent.js
 
<script language="JavaScript" src="路径/FusionCharts/FusionChartsExportComponent.js"></script> 
2.定义图表的时候需要将registerWithJS 置为1,如下:
 
var myChart = new FusionCharts("路径/FusionCharts/Column2D.swf", "myChartId", "500", "300", "0", "1"); 
 
3.配置导出组件和展示,导出组件的名字为fcExporter1,导出按钮将在fcexpDiv这个DIV中进行展示
 
<div id="fcexpDiv" align="center">FusionCharts Export Handler Component</div><script type="text/javascript">var myExportComponent = new FusionChartsExportObject("fcExporter1", "路径/FusionCharts/FCExporter.swf"); myExportComponent.Render("fcexpDiv");</script> 4.Chart的XML数据中需要增加的三个属性,exportHandler为刚才定义的导出组件名称
 
<chart ... exportEnabled='1' exportAtClient='1' exportHandler='fcExporter1' ...>    <set label='Alex' value='25000' />       ......</chart> 
最简单的配置上面四步就可以搞定,另外还有对导出按钮的样式配置等,详细内容可以参考官方文档:http://www.fusioncharts.com/Docs/ECClientSimple.html
 
 
Fusionchart的Event调用
 
对客户端导出功能一直有个疑问,就是导出按钮的设计。用户未必知道通过右键去点击图片可以有导出选项,放个按钮在图片旁边会让人很疑惑它的作用,是导出按钮吗?是的话为何不允许点? 所以我觉得比较合理的状况是用户主动触发导出行为,然后显示导出按钮,这样基本上符合大多数人的思维习惯。
 
导出按钮Fusioncharts是这样设置的,开始是disabled状态,触发导出行为后是可点击状态。那么将这个DIV隐藏,然后触发到处行为后展示即可。但导出按钮是Flash组件,即使是DIV hidden,如果Flash组件没有设置的话它还会展示,而且还要在它加载完毕后对其设置。考虑到这些只能利用Fusioncharts的Event来解决问题。
 
通过下面的两个步骤可以实现:
 
1.Flash加载结束后,隐藏导出按钮组件
 
<div class="quote_title">FC_Loaded事件
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表