FusionCharts Free(2)

    上面已经说过了,要使用FusionCharts Free,只需要在项目包含FusionCharts.js和22个对应不同类型图表的.swf文件即可。

    FusionCharts.js的主要作用是用于创建一个FusionCharts对象,这个对象将负责控制不同类型图表对应的.swf文件在页面上的显示。这个js文件没有解决Flash动画的遮盖问题,如果需要的话,可以自己手动在函数getSWFHTML中进行相应的修改:

 

    getSWFHTML: function() {
        
var swfNode = "";
        
if (navigator.plugins && navigator.mimeTypes && navigator.mimeTypes.length) 
            
// netscape plugin architecture            
            //去除flash文件遮盖
            swfNode = '<embed type="application/x-shockwave-flash" src="'+ this.getAttribute('swf'+'" wmode="transparent" width="'+ this.getAttribute('width'+'" height="'+ this.getAttribute('height'+'"  ';
            
            
//
        }
 else // PC IE            
            swfNode = '<object id="'+ this.getAttribute('id'+'" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="'+ this.getAttribute('width'+'" height="'+ this.getAttribute('height'+'">';
            swfNode 
+= '<param name="movie" value="'+ this.getAttribute('swf'+'" />';
            
//去除flash文件遮盖
            swfNode += '<param name="wmode" value="transparent" />';
            
            
var params = this.getParams();
            
//
        }

        
return swfNode;
    }

 

    图表是关于数据的可视化方案,那么如何为FusionCharts Free指定图表数据?

    上述的22个对应不同类型图表的.swf文件只能接受XML格式的数据作为图表数据源,可以有2种主要的向这些.swf文件提供数据的方式——

  • dataURL方式:指定一个指向包含图表数据的XML文档的URL,该方式对应的是FusionCharts对象的setDataURL方法
  • dataXML方式:指定一个XML片断,该方式对应的是FusionCharts对象的setDataXML方法

    这两种方式对应的XML数据是怎样传递到.swf文件的?使用FusionCharts.js文件创建的FusionCharts对象将负责连接用于图表显示的swf文件和图表要表现的数据源。

    除了这两种为图表指定XML数据的方法之外,还可以通过FusionCharts.js文件中实现的一个Javascript方法updateChartXML,这种方式可以看作是对dataXML方式的一个扩展。

    对于dataURL和dataXML方式如何进行选择?

    一般情况下,建议使用的传递图表数据的方式是dataURL方式:

  • 按照代码分离的原则,我们更希望可以单独管理图表数据XML文件和用于图表展示的HTML页面,相信没有人愿意在Javascript中使用变量保存一个结构可能很复杂的XML文档或片断
  • 由于用于接收图表数据的swf文件对于非英文字母的特殊字符的敏感性,我们使用Javascript变量构造一个XML文档或片断时,可能遇到麻烦

    

    

posted @ 2008-07-06 12:48  蜡人张  阅读(5648)  评论(3编辑  收藏  举报