開源Flash圖表組件:Open Flash Chart 2
Open Flash Chart2是依據Open Flash Chart1.x完全重新構建的一個Flash圖表繪制組件。與1.x版本最大不同之處在于把數據格式改成JSON,以實現一些更酷的功能。該版本全部采用Actionscript3開發,Adobe Flex編譯。
一、JSON數據格式如下:
{ /* 圖表標題 */ "title":{ "text": "標題", "style": "{font-size: 20px; color:#0000ff; font-family: Verdana; text-align: center;}" }, /* X軸標題 */ "x_legend":{ "text": "X軸標題", "style": "{font-size: 12px; color:#736AFF;}" }, /* Y軸標題 */ "y_legend":{ "text": "Y軸標題", "style": "{color: #736AFF; font-size: 12px;}" }, "is_decimal_separator_comma": 0, /* (0/1),是否用逗號替換小數點 */ "is_fixed_num_decimals_forced": 1, /* (0/1),是否強制小數點后面的位數 */ "num_decimals":3, /* 精度,即小數點后面的位數,需要配合上面參數一起使用 */ "is_thousand_separator_disabled": 0, /* (0/1),是否使用千位分隔符 */ "x_axis":{ "stroke":1, /* X軸的粗細 */ "tick_height": 10, /* X軸刻度的長度 */ "colour":"#d000d0", /* 顏色 */ "grid_colour":"#00ff00", /* 網格線的顏色 */ "offset": 1, /* (0/1), 是否根據數據圖形和標簽的寬度進行延展 */ "3d": 0, /* 顯示3D */ "steps": 0.5, /* 刻度間隔 */ /*"min": 0, "max": 8,*/ "labels": { "labels": ["一月","二月","三月","四月","五月","六月","七月","八月", {"text":"九月", "visible":true, "colour":"ff0000", "rotate":-60} ] } }, "y_axis":{ "stroke": 4, "tick_length": 3, "colour": "#d000d0", "grid_colour": "#00ff00", "offset": 0, "max": 20, "steps": 2 }, "elements":[ { "type": "bar", /* 可選值有bar,line,pie等 */ "alpha": 0.5, "colour": "#9933CC", "text": "圖例一", "font-size": 10, "values" : [9,6,7,9,5,7,6,9, { "bottom":0, "top":7, "colour":"#A03030", "tip":"#top#<br>hello<br>#val#", "on-click":"#" } ] }, { "type": "bar", "alpha": 0.5, "colour": "#CC9933", "text": "圖例二", "font-size": 10, "values" : [6,7,9,5,7,6,9,7,3] } ], "tooltip":{ "shadow": false, /* 提示框影子 */ "stroke": 2, /* 邊框粗細 */ "rounded": 1, /* 邊角圓滑程度 */ "colour":"#00d000", /* 邊框顏色 */ "background":"#d0d0ff", /* 背景顏色 */ "title":"{font-size: 18px; color: #000000; font-weight:bold;}", /* 標題樣式 */ "body":"{font-size: 10px; color: #000000;}" /* 本體樣式 */ } }
二、HTML頁面內容參考如下:
<%@ page language="java" pageEncoding="utf-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Open Flash Chart</title> <script type="text/javascript" src="js/json/json2.js"></script> <script type="text/javascript" src="js/swfobject.js"></script> </head> <body> <div id="my_chart"></div> <script type="text/javascript"> swfobject.embedSWF( "open-flash-chart.swf", "my_chart", "650", "300", "9.0.0", "expressInstall.swf", {"data-file":"bar.txt"}, {"wmode":"transparent"} ); </script> </body> </html>
bar.txt文件的內容就是json格式的數據
三、數據加載方式有以下幾種:
//數據加載方法一:通過靜態的json格式字符串數據 //ofc2默認會調用 open_flash_chart_data 該方法,方法返回json格式的字符串數據 function open_flash_chart_data(){ var data = { }; //json對象 return JSON.stringify(data); } //數據加載方法二:通過data-file屬性調用action //{"data-file":"dataServlet?r=<%=new Random().nextInt()%>"}, //數據加載方法三:通過data-file屬性調用json格式的數據文件 //{"data-file":"bar.txt"}, //數據加載方法四:通過Ajax調用action function open_flash_chart_data(){ jQuery.post("dataServlet", function(data){ var tmp = findSWF("my_chart"); tmp.load(JSON.stringify(data)); }); var emptyData = { "title": {"text": ""}, "elements": [] }; return JSON.stringify(emptyData); } function findSWF(movieName) { if (navigator.appName.indexOf("Microsoft")!= -1) { return window[movieName]; } else { return document[movieName]; } }
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!