首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Flash >

Open Flash Chart组件的应用

2012-11-08 
Open Flash Chart组件的使用简介?OpenFlashChart是一个开源的报表制作组件,该组件能够自动生成一个好看的、

Open Flash Chart组件的使用

简介
?OpenFlashChart是一个开源的报表制作组件,该组件能够自动生成一个好看的、动态的flash报表;该组件使用flash展示报表能够很好的做到与浏览器进行集成,目前浏览器基本都能很好的支持flash;该组件还支持一些简单的JavaScript,提供在图形上对外部URL的链接;该组件非常小,java类一共不超过10个,可操作的API也很少,这样学习起来也非常容易上手。但可阅读的文档非常少,在与其它框架集成方面还有些问题。

主要配置项:
????? openflashchart.jar:Open Flash Chart组件,工程开始时引入(lib目录下)。

????? open-flash-chart.swf:Flash文件接口,通过该文件来生成Flash文件,备页面调用(在web目录下,与WEB-INF目录并级)。

????? swfobject.js:Flash文件依赖的JS文件(在web目录下,与WEB-INF目录并级)。

?

Open Flash Chart主要有:HTML、JSP、Servlet等三种使用方式。其具体介绍参见附件中(在这里发表文章好像还有篇幅的限制...)。在附件中还提供了Demo和ofc的文档,供大家下载研究。

备注和补充说明:
1、该组件支持java 1.5以上版本。

2、利用Servlet API输出数据时应该注意设置编码,防止出现乱码。

如:response.setCharacterEncoding("utf-8");//设置字符集,在项目中使用utf-8页面不会出现乱码。

3、在页面Object标签中如果要开启外链支持,需要设置allowScriptAccess=always(默认为sameDomain,即不允许跨域访问)允许突破同源策略访问外部链接或者执行Javascript代码。

4、在图形链接时如果指定的是调用Javascript代码,注意应该避免出现逗号,因为这个设置是作为字符串(可能包括多个图形的链接,同时以逗号分隔)传递给Flash接口的,它会对这个字符串利用逗号进行split,从而出现Javascript解析错误,无法正确执行Javascript代码。

5、OFC4J对OpenFlashChart的面向对象封装很好,但是目前版本不支持图形链接。

?

在项目使用过程中,发现在与公司开发框架的集成过程中出现一些问题:

1)????? 同样版本的IE,有的IE访问时出现JavaScript错误,而有的IE却很正常;

2)????? 所有图形输出之前全都设置相同的字符集,却出现在有的图形中出现乱码,而在有的图形中中文显示正常。而另一个项目组在开发桌面应用时使用的就是该组件,却一直很正常,没有出现大的问题。

该组件还不是很成熟,在我们开发报表,选择第三方组件时,应该谨慎。本人建议还是采用目前比较成熟的jFreeChart组件进行报表的开发。

?

引自http://crabdave.iteye.com/blog/189653

?

?

SWFObject是一个用于在HTML中方面插入Adobe Flash媒体资源(*.swf文件)的独立、敏捷的JavaScript模块。该模块中的JavaScript脚本能够自动检测PC、Mac机器上各种主流浏览器对Flash插件的支持情况。它使得插入Flash媒体资源尽量简捷、安全。而且它是非常符合搜索引擎优化的原则的。此外,它能够避免您的HTML、XHTML中出现object、embed等非标准标签,从而符合更加标准。

?

JSON格式基本属性详解

数据文件必须是JSON格式.JSON对象的基本格式:
{}
把所有对象都编写在{}里面.让它看起来像下面 JSON 数据格式:
{
? "title":{
??? "text":? "Many data lines",
??? "style": "{font-size: 20px; color:#0000ff; font-family: Verdana; text-align: center;}"
? }
}
Title(可选)
所有属性参数都可选的.
text:string ,????????? 标题
style:string ,?????? CSS样式
例子:
{
???? "title":{
???????????? "text": "Yedeer.com.cn data line",
???????????? "style": "{font-size:20px; color:#000000; font-family:Verdana; text-align:center;}"
????????????? }
}
Y_Legend(可选)
所有属性参数都是可选.
text:string,????????? Y轴标题
style:string,??????? CSS样式
例子:
{
???? "y_legend":{
????????????? "text":"Yedeer.com.cn Chart",
???????????? "style":"{color:#736AEF; font-size:12px;}"
??????????? }
}
X Axis(可选)
这个对象的属性是可选的,如果没有指定属性将使用默认的X轴属性.
所有可选属性:
stroke: number, X轴线的宽度
tick-height: number, X轴刻度线高度值
colour: string, 线的颜色
offset: boolean, 柱状图表中X轴的偏移最小值是0
grid-color:string, 表格线颜色
3d: boolean, 设置3D
steps: 取决于tick-height属性
labels: array of strings, 每个X点的标签
例子:
{
???????? "x_axis":{
?????????????????? "stroke":?????????? 1,
????????????????? "tick-height":? 10,
????????????????? "colour":?????????? "#d000d0",
????????????????? "grid-colour": "#00ff00",
????????????????? "labels":?????????? ["January,"February","March","April","May","June","July","August","Spetember"]
?????????????? }
}
Y Axis(可选)
应该属性和X Axis差不多(因为官方没给出,不知道是不是编漏了)
min:integer, Y轴最小值
max: integer, Y轴最大值
tick-length:number, Y轴刻度线长度
例子:
{
????????? "y_axis":{
????????????????? "stroke":??????? 4,
????????????????? "tick-length":? 3,
????????????????? "colour":??????? "#d000d0",
????????????????? "grid-colour":"#00ff00",
????????????????? "offset":?????????? 0,
????????????????? "max":??????????? 20
????????????? }
}
Elements???????????? 元素
元素的属性是一个数组的通用对象
这些通用对象图表类型为(line,bar,scatter等等)
{
? "elements":[
??? {
????? "type":????? "bar",
????? "alpha":???? 0.5,
????? "colour":??? "#9933CC",
????? "text":????? "Page views",
????? "font-size": 10,
????? "values" :?? [9,6,7,9,5,7,6,9,7]
??? },
??? {
????? "type":????? "bar",
????? "alpha":???? 0.5,
????? "colour":??? "#CC9933",
????? "text":????? "Page views 2",
????? "font-size": 10,
????? "values" :?? [9,6,7,9,5,7,6,9,7]
??? }
? ]
}
Elements.bar
柱状图表必须包含在元素数组
type: string??? 必须是’bar’
alpha: number,? 0(透明)和1(不透明)之间的值
colour:string,? CSS颜色
text:string, 图例说明文本
font-size: number, 设置图例文本字体大小
values: array of number, 柱子的高底
例子:
{
? "elements":[
??? {
????? "type":????? "bar",
????? "alpha":???? 0.5,
????? "colour":??? "#9933CC",
????? "text":????? "Page views",
????? "font-size": 10,
????? "values" :?? [9,6,7,9,5,7,6,9,7]
???? }
?? ]
}
Elements.pie
圆饼图表,必须包含在元素数据组里
type:string, 必须是’pie’
start-angle: number, 第一个切片角度
colours:array of string,? CSS颜色
alpha:number, 0(透明)和1(不透明)之间的值
stroke: number, 切片外边线宽
animate: boolean, 切片图表动画
values:array of objects, 每个切片值或者切片对象与值
例子:
{
? "elements":[
??? {
????? "type":????? "pie",
????? "start-angle": 180,
????? "colours":?? ["#d01f3c","#356aa0","#C79810","#73880A","#D15600","#6BBA70"],
????? "alpha":???? 0.6,
????? "stroke":??? 2,
????? "animate":?? 1,
????? "values" :?? [0,2,{"value":0,"text":"zero"},2,6]
???? }
?? ]
}
Elements.hbar
横状图表
values:array of objects 每个值含有"right"和"left"可选值
例子:
{
? "elements":[
??? {
????? "type":????? "hbar",
????? "colour":??? "#9933CC",
????? "text":????? "Page views",
????? "font-size": 10,
????? "values" :?? [{"right":10},{"right":15},{"left":13,"right":17}]
??? }
? ]
}
Elements.line_dot
线形图表
values:array of number 一个数组集合
例子:
{
? "elements":[
??? {
????? "type":????? "line_dot",
????? "colour":??? "#736AFF",
????? "text":????? "Avg. wave height (cm)",
????? "font-size": 10,
????? "width":???? 2,
????? "dot-size":? 4,
????? "values" :?? [1.5,1.69,1.88,2.06,2.21,2.34,null,2.35,2.23,2.08]
??? }
? ]
}
Elements.line*
注意:这是一个简单定义3种不同线形类型的图表(不明白的属性,请向上温习一下)
例子:
{
? "title":{
??? "text":"Many data lines",
??? "style":"{font-size: 30px;}"
? },

? "y_legend":{
??? "text":"Open Flash Chart",
??? "style":"{font-size: 12px; color:#736AFF;}"
? },

? "elements":[
??? {
????? "type":????? "line",
????? "colour":??? "#9933CC",
????? "text":????? "Page views",
????? "width":???? 2,
????? "font-size": 10,
????? "dot-size":? 6,
????? "values" :?? [15,18,19,14,17,18,15,18,17]
??? },
??? {
????? "type":????? "line_dot",
????? "colour":??? "#CC3399",
????? "width":???? 2,
????? "text":????? "Downloads",
????? "font-size": 10,
????? "dot-size":? 5,
????? "values" :?? [10,12,14,9,12,13,10,13,12]
??? },
??? {
????? "type":????? "line_hollow",
????? "colour":??? "#80a033",
????? "width":???? 2,
????? "text":????? "Bounces",
????? "font-size": 10,
????? "dot-size":? 6,
????? "values" :?? [5,7,9,7,4,6,1,2,5]
??? }
? ],

? "y_axis":{
??? "max":?? 20
? },

? "x_axis":{
??? "steps": 2,
??? "labels": ["January","February","March","April","May","June","July","August","September"]
? }
}
例子:
这是一个简单的横状图表的JSON对象内容(不明白的属性请向上温习)
{
? "title":{
??? "text":"HBar Map X values",
??? "style":"{font-size: 20px; font-family: Verdana; text-align: center;}"
? },

? "elements":[
??? {
????? "type":????? "hbar",
????? "colour":??? "#9933CC",
????? "text":????? "Page views",
????? "font-size": 10,
????? "values" :?? [{"right":10},{"right":15},{"left":13,"right":17}]
??? }
? ],
? "x_axis":{
??? "min":??? 0,
??? "max":??? 20,
??? "offset": 0,
??? "labels": ["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v"]
? },
? "y_axis":{
??? "stroke":????? 14,
??? "tick-length": 30,
??? "colour":????? "#d09090",
??? "grid-colour": "#00ff00",
??? "offset":????? 1,
??? "labels":????? ["slashdot.org","digg.com","reddit.com"]
? }
}

1 楼 Jack-chen 2011-01-12   楼主,忘了上附件

热点排行