zoukankan      html  css  js  c++  java
  • fusioncharts 汉化 33

    位置:第三章创建你的第一个图表 >> JavaScript嵌入

    在上面我们两个例子中,我们使用的是直接的HTML代码(如下所示)来嵌入图表:

    <html>
    ...
       <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="900" height="300" id="Column3D" >
          <param name="movie" value="../FusionCharts/Column3D.swf" />
          <param name="FlashVars" value="&dataURL=Data.xml">
          <param name="quality" value="high" />
          <embed src="../FusionCharts/Column3D.swf" flashVars="&dataURL=Data.xml" quality="high" width="900" height="300" name="Column3D" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
       </object>
    ...
    </html>

    正如上面你所见到的, 我们使用<OBJECT> <EMBED> 标记在HTML页面中来嵌入图表. 这种嵌入方式我们称之为直接的HTML嵌入式.

    然而,在最近的更新中使用IE浏览器处理ActiveX对象(Flash是ActiveX对象),最终用户将首先需要单击该图表以激活它。下面是一个例子所示:

    直到用户点击图表后,他才能进行交互图表工作即使用工具提示和链接。这有可能在你图表链接中误导你。.

     
    JavaScript解决方案

    由于上述的“点击激活的解决办法...”问题,您需要在您的HTML网页中使用JavaScript嵌入FusionCharts. 当您使用JavaScript来写一个ActiveX对象的标记,Internet Explorer中不显示上述边界和消息,并且对象也不需要通过点击激活。

    为了方便起见,我们已经提供了一个叫做FusionChart de Javascript类,它可以帮助你以一种用户友好的方式工作。这个类在下载包>JSClass文件夹中。这个文件名为FusionCharts.js.

     
    我们不会讨论这个类的技术细节。如果你对此感兴趣,你可以直接查看这个JavaScript类的源文件。这里我们会看到使用这个类的例子.
     
    现在让我们以修改我们以前三维柱状图(我的第一个图表)为例,使用此JavaScript类嵌入图表.
     
    用FusionCharts.js全局访问

    由于你包含FusionCharts的网页现在需要使用JavaScript类,把JS文件放在根目录是个好主意,因为它是全局可访问的.我们复制此文件到我们上一个创建的FusionCharts文件夹中,其中已经包含了SWF图表文件。复制到这里可以确保所有的图表和这个JS文件能从这个核心位置被所有页面访问。

     
    在HTML页面中使用这个类

    现在我们来修改我们的HTML页面来使用这个类来嵌入图表.

    创建一个Chart.html的副本并另存为JSChart.html,并把它们保存在同一个文件夹中。进行下面的改动:

    <html>
        <head>
            <script language="JavaScript" src="../FusionCharts/FusionCharts.js"></script>
        </head>

    <body bgcolor="#ffffff">
        <div id="chartdiv" align="center">The chart will appear within this DIV. This text will be replaced by the chart.</div>
        <script type="text/javascript">
            var myChart = new FusionCharts("../FusionCharts/Column3D.swf", "myChartId", "900", "300", "0", "0");
            myChart.setDataURL("Data.xml");
            myChart.render("chartdiv");
        </script>

    </body>
    </html>

     

    在这里,我们首先包括FusionCharts的JavaScript类文件:

    <script language="JavaScript" src="../FusionCharts/FusionCharts.js"></script>
     

    创建一个具有为ID的DIV(上面这个例子中叫chartdiv).

    <div id="chartdiv" align="center">...</div>
     

    图表实例使用以下代码:

    var myChart = new FusionCharts("../FusionCharts/Column3D.swf", "myChartId", "900", "300", "0", "0");

    在这里,myChart是JavaScript对象的名字,它包含到我们的图表中.

    我们使用如下的参数:

    1. 我们打算使用swf文件的URL来指定图表类型
    2. 为图表指定ID,你可以为图表指定任意ID.只要确保如果你在一个HTML页面中使用多个图表,每个图表都具有唯一的ID
    3. 指定图表的宽高.
    4. 最后两个参数是debugMode和registerWithJS,一般设置为0。我们将稍后解释这些参数.

    为图表传递XML数据路径使用下面的方式:

    myChart.setDataURL("Data.xml");
     

    最后通过调用类的render()方法,指定图表想要显示的DIV的ID来进行渲染.
    myChart.render("chartdiv");

    现在当你在IE中运行这个页面,你会看到同样的3D柱状图-但是没有“点击激活”的信息.此外,你也无须点击此图表来激活。

  • 相关阅读:
    ruby_debug笔记
    来自Neil
    rails 在迭代里的那些条件
    rails 表单嵌套
    rails present? 和 blank? 对于bool 值
    泛泛
    设计模式——策略模式
    Spring容器初始化过程
    Spring之ResourceLoader加载资源
    Spring之ClassPathResource加载资源文件
  • 原文地址:https://www.cnblogs.com/tippoint/p/1769265.html
Copyright © 2011-2022 走看看