從 http://www.infosoftglobal.com/ 站點下載下傳免費版本到本地,解壓到本地,取出 JSClass目錄和Charts 目錄下所有檔案拷貝到你的網站chart目錄下,即可開始FusionCharts的使用之旅。
一、 開始一個簡單的demo
1. 在你的網站根目錄下建立 Data.xml文檔,作為圖表的資料源,内容如下:
2. 再建立一個展示頁面,Demo.html :
"Content-Type" content="text/html; charset=UTF-8">
第一個Flash圖表頁面
<script language= src= "chart/FusionCharts.js"></script>
"chartDiv" align= "center">First Chart Container Pie 3D
<script type= >
var myChart1 = new FusionCharts("chart/FCF_Column3D.swf", "myChartId", "600", "350");
myChart1.setDataURL("Data.xml");
myChart1.render("chartDiv");
</script>
3. 猛擊 Demo.html 檔案,即可看到如下效果:
4. 夠簡單吧,這樣才好。
二、 對中文字元的支援
1. 讓 FusionCharts支援中文
修改一下剛才 Data.xml 檔案,加入幾個中文字元,狂重新整理浏覽器,會看到幾個不協調的字元。這裡我修改圖表标題(caption='Monthly Unit Sales' è caption='月銷售曆史'):
FusionCharts告訴我們XML檔案加載失敗,可能有非法字元。下面要修改Data.xml,使之好好工作。官方說目前Data.xml檔案缺乏BOM标記(Byte Order Mark),打開UltraEdit 文本編輯器,另存為的時候,一定要選擇:
UTF-8編碼方式(已經附加BOM标記),直接覆寫原檔案。
再次重新整理Demo.html 頁面,即可看到标題變成了中文:
若您對16進制熟悉,以16進制打開檔案,直接修改前6位字元為
”EF BB BF”,儲存成UTF-8格式即可。
牢記:靜态的XML檔案,須包含BOM特征碼。
2. 讓動态産生的XML檔案避免中文問題
我們實驗一下把Data.xml檔案替換成動态生成XML方式。
建立一個JSP 頁面:Data.jsp ,輸入以下内容:
<%@ page language="java" contentType="text/xml; charset=UTF-8"%>
<%
String xmlStr = " "
+ " "
+ " "
+ " "
+ " "
+ " "
+ " "
+ " "
+ " "
+ " "
+ " "
+ " "
+ " "
+ "";
out.write(xmlStr);
%>
在Demo.html頁面,修改 setDataURL參數為“Data.jsp”,再次重新整理Demo.html頁面,即可看到效果。
下面在JSP頁面中同樣把圖表标題修改成中文,重新整理浏覽器,會看到“Invalid XML Data”字樣。
怎麼辦,設定JSP檔案具有BOM标記,不行!設定其XML輸出編碼嘗試一下吧:
<%@ page language="java" contentType="text/xml; charset=GBK"%>
看到了嗎,UTF-8 被修改成了 GBK編碼,重新整理Demo.html檔案,看一看到正常效果了。
牢記 :動态産生的XML文檔,編碼須是GBK或者gb2312。
三、 表格資料源-字元串形式加載
以上使用FusionCharts 提供的 setDataURL方法,參數須是可通路、産生xml文檔的URL位址。若不是url,字元串亦可作為參數傳遞過去:
建立Demo2.html檔案:
"Content-Type" content="text/html; charset=UTF-8">
使用字元串充當資料源
<script language= src= "chart/FusionCharts.js"></script>
"chartDiv" align= "center"> Chart Container Pie 3D
<script type= >
//資料源
var xmlData = " " +
" " +
" " +
" " +
" " +
" " +
" " +
" " +
" " +
" " +
" " +
" " +
" " +
"";
var myChart1 = new FusionCharts("chart/FCF_Column3D.swf", "myChartId", "600", "350");
myChart1.setDataXML(xmlData);
myChart1.render("chartDiv");
</script>
通路Demo2.html頁面,會看到正常的圖示顯示。
嘗試一下将圖表标題修改成中文,這次很順利的顯示出來了,但标題顯示為亂碼:
怎麼辦 ?把目前的html檔案修改成包含有BOM特征碼的UTF-8檔案,這招不好使了。
解決方法,建立一個JSP頁面(Demo2.jsp),比Demo2.html檔案多了一行内容:
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
通路一下,可以看到中午亂碼問題解決了。
牢記 :提供字元串資料源的頁面必須寫死才行,可以是GBK或UTF-8。
再深入一下,動态産生的字元串資料源,是否也存在亂碼問題。
修改Demo2.jsp中的
myChart1.setDataXML(" ");