FusionCharts学习笔记

简介:

1 使用JS方式调用,为了以后的可扩展性,以及跨浏览器兼容性

 

2 可以载入logo,可以设定各种位置,以及logo所占的范围,还有透明度等,例子如下:

<chart logoURL='/img/logo.gif' logoPosition='CC' logoAlpha='50' logoScale='150'>

效果图:

 

 

 

3 Label有多种可选格式:

Modes for data labels

The data labels can be displayed on the charts in the following ways:

  • Wrap mode
  • Rotated and slanted mode
  • Staggered mode with customizable staggered lines
  • Every n-th label

其中n-th label,就是用来解决x轴的标签多长,不能每个都显示的问题.可以控制flash每隔多少个label就显示一下标签.

例子上面的图已经说明问题了,每隔6天显示一次日期,只需要设定<chart labelStep='6'>

 

4 Number可以Formatting,可以指定是否需要保留小数,是否用逗号分隔等等

 

5 如果数据差异很巨大,可以显示不同单位,例如可以由flash来自动转换单位,在一个图标中,显示秒/分/时/天/周/月,也可以显示K/M/G/T…

不过在中国,还是下面这个例子更符合国情:

<chart numberScaleValue='10000,10000,10000' numberScaleUnit='万,亿,兆' >

 

6 可以指定自己的About链接,将”About FusionCharts”变为”关于情报通”,然后链接是情报通的关于页面

<chart showAboutMenuItem='1' aboutMenuItemLabel='关于情报通' aboutMenuItemLink='n-/site_about.html'>

 

7 每个swf的<set> element是很重要的,表明显示的信息有多少个参数可以设定,例如里面有link这个标签,可以用来指定url,并且有各种语法,有”n-url”,”j-function-param1,param2”

还有”F-idFrame-url”等等,分别是新窗口打开链接,调用js函数并传递参数,在iFrame中打开


8 导出image/PDF效果:
分为server-side和client-side两种模式,server-side需要把原始 BMP图片传回服务器,由服务器上的GD模块(当然程序是FusionCharts自带的)来转化为PNG/JPG/PDF然后输出给客户端,这样对服务 器来说有压力,好处就是图片可以保留在服务器上,后期可以处理(例如邮件给客户,而不是直接下载)
一般还是应该选择client-side模式,因为这样对服务器没有压力,本来嘛,就是截图而已,何必传数据回服务器呢?
不 过client-side模式有个问题,那就是FusionCharts工具是在Flash8下实现的,而Flash8不带stream输入输出功能(文 档这么说,我没有验证),所以需要用Flash10来实现处理图片流数据,所以就需要额外多加一个div,看起来像个按钮,导出之后,要点一次该按钮,才 能保存图片.按钮的位置当然是可以定制的,随便放.

 

导出时的中文菜单怎么定制?例子:
<chart exportEnabled='1'  exportAtClient='1' exportDialogMessage='正在导出,请稍候...' exportFormats='JPEG=导出为JPG图片|PNG=导出为PNG图片|PDF=导出为PDF文件'>

Flash10的导出按钮中文化及定制是通过js完成的:
<div id="fcexpDiv" align="center">XXXXXXXXXXXXXXXXXXXXXX</div>
<script type="text/javascript">
//Render the export component in this
//Note: fcExporter1 is the DOM ID of the DIV and should be specified as value of exportHandler
//attribute of chart XML.
var myExportComponent = new FusionChartsExportObject("fcExporter1", "/FusionCharts/Charts/FCExporter.swf");
//Customize the component properties
//Width and height
myExportComponent.componentAttributes.width = '400';
myExportComponent.componentAttributes.height = '60';
//Background color
myExportComponent.componentAttributes.bgColor = 'ffffdd';
//Border properties
myExportComponent.componentAttributes.borderThickness = '2';
myExportComponent.componentAttributes.borderColor = '0372AB';
//Font properties
myExportComponent.componentAttributes.fontFace = 'Arial';
myExportComponent.componentAttributes.fontColor = '0372AB';
myExportComponent.componentAttributes.fontSize = '12';
//Message - caption of export component
myExportComponent.componentAttributes.showMessage = '1';
myExportComponent.componentAttributes.message = '在报表上右键导出,然后点此按钮保存图片';
//Button visual configuration
myExportComponent.componentAttributes.btnWidth = '200';
myExportComponent.componentAttributes.btnHeight= '25';
myExportComponent.componentAttributes.btnColor = 'E1f5ff';
myExportComponent.componentAttributes.btnBorderColor = '0372AB';
//Button font properties
myExportComponent.componentAttributes.btnFontFace = 'Verdana';
myExportComponent.componentAttributes.btnFontColor = '0372AB';
myExportComponent.componentAttributes.btnFontSize = '15';
//Title of button
myExportComponent.componentAttributes.btnsavetitle = '图片已生成,点击保存'
myExportComponent.componentAttributes.btndisabledtitle = '报表上右键可以导出图片';
//Render the exporter SWF in our DIV fcexpDiv
myExportComponent.Render("fcexpDiv");
</script>

对了,最最重要的,如果要使用client-side导出,别忘了在用js调用FusionCharts时,设定最后一个参数为1!!
<div id="chartdiv" align="center">The chart will appear within this DIV.</div>
<script type="text/javascript">
var myChart = new FusionCharts("/FusionCharts/Charts/Column2D.swf", "myChartId", "900", "300", "0", "1");
//就是上面这最后一个参数,必须是1,才能和另外那个控制按钮交互
myChart.setDataURL("/xml/fc_cn.xml");
myChart.render("chartdiv");
</script>

9 编码问题,如果是用setDataURL的方式,则需要使用utf8有签名的文本,所谓有签名,其实就是开头有几个特殊字符而已,在PHP中的实现为:

header ( 'Content-type: text/xml' );
echo pack ( "C3" , 0xef, 0xbb, 0xbf );

// Now write your XML data to output stream

当然,你用gbk编码的xml文件也可以,看你自己的站点具体是什么编码,怎么使用方便了.

 

如果用setDataXML的方式,似乎没什么限制,及时整个html是utf8无签名的,也没有出现乱码,挺好.

10 setDataurl.只能接收一个参数

用escape(url)解决问题


本文转自sucre03 51CTO博客,原文链接:http://blog.51cto.com/sucre/412220,如需转载请自行联系原作者


相关文章
|
JavaScript 前端开发 API
Three.js学习笔记 一
在react中快速实现三维模型的创建
Three.js学习笔记   一
|
前端开发
Dreamweaver如何使用CSS?
Dreamweaver如何使用CSS?
183 0
|
JavaScript 前端开发 Java
javaScript实战项目之动态表格【文末附源码】
js中BOM实战项目之动态表格 🍅 Java学习路线:搬砖工的Java学习路线 🍅 作者:程序员小王 🍅 程序员小王的博客:https://www.wolai.com/wnaghengjie/ahNwvAUPG2Hb1Sy7Z8waaF 🍅 扫描主页左侧二维码,加我微信 一起学习、一起进步 🍅 欢迎点赞 👍 收藏 ⭐留言 📝
130 0
javaScript实战项目之动态表格【文末附源码】
|
前端开发 JavaScript 数据建模
JavaScript 使用 Markdown 制作 PPT
markdown 对于开发者来说是一个熟悉的文档格式,编写文档或者博客首选的格式。markdown 文档可以转换为HTML进行展示。在文章《2021 年 6 个GitHub推荐前端项目》中介绍了一个将 markdown 转换为幻灯片的脚本库 Slidev 。
303 0
JavaScript 使用 Markdown 制作 PPT
|
前端开发 JavaScript API
使用reveal.js制作精美的网页版PPT
最近在做季度总结和技术分享,所以需要做个PPT, 来回顾这半年来的技术贡献. 但苦于mac上运行PPT那感人的流畅度, 成功的激起了笔者的强迫症, 所以索性想办法通过技术的手段来做个网页版PPT, 这个时候笔者发现了reveal.js: 一个使用 HTML 语言制作演示文稿的 Web 框架,支持插入多种格式的内容,并以类似 PPT 的形式呈现. 花了15分钟系统的调研了一下, 觉得基本满足技术分享类PPT的要求, 所以决定采用该方案来实现我的网页版PPT. 这里列一下笔者的技术调研方法论, 供大家参考:
504 0
|
前端开发 JavaScript iOS开发
8款超赞的最新jQuery插件工具
jQuery是迄今为止我最喜欢的Javascript框架,开发者用jQuery创造出惊人的视觉效果,以及处理数据,等等。 在这篇文章中,我给所有web开发人员推荐8款超赞的jQuery插件工具。 1.jQuery Mobile 由于iPhone和BlackBerry移动设备的普及,网络趋向于移动,jQuery Mobile是一个完整的框架,让您轻松地创建移动网站。
1116 0
|
JavaScript 定位技术 前端开发
leaflet教程
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/gisdoer/article/details/82415601 leaflet简介 本教程使用leaflet进行基本的地图开发,功能介绍,代码演示。
2294 0
|
JavaScript C# 前端开发
|
JavaScript 前端开发
|
Web App开发 Linux 前端开发