fushioncharts几种问题汇总:debug、赋值方式、事件处理等

本文介绍FusionCharts的调试模式配置、自定义提示信息方法及事件处理技巧。包括如何启用debug模式、如何实现中文提示信息的自定义、如何处理y轴整数显示问题,并详细说明了各种可用事件及其用途。

转自:http://www.cnblogs.com/myaspnet/archive/2011/05/16/2048269.html

一、

fusionchart的debug模式

<script type="text/javascript">
   var myChart = new FusionCharts("../FusionCharts/Column2D.swf", "myChartId", "600", "300", "1", "0");
   myChart.setDataURL("Data.xml");
   myChart.render("chartdiv");
</script>
对应构造方法参数含义
1.URL of SWF file of the chart type that we intend to use 
2.Id for the chart - You can give any id for the chart. Just make sure that if you're using multiple charts in the same HTML page, each chart should have a unique Id. 
3.Required width and height of the chart. 
4.The last two parameters are debugMode and registerWithJS and are normally set to 0. We'll explain those parameters later.

二、

在使用fusioncharts的时候,有时候你可能要修改其默认的提示信息。如在默认情况下没有数据时显示:no data to display,你要实现自定义你可以通过以下方式实现。

fusioncharts3.1中文提示解决
 var myChart = new FusionCharts("../FusionCharts/Column2D.swf?ChartNoDataText=无数据显示", "myChartId", "600", "300");

fusioncharts3.2中文提示解决
<script type="text/javascript"><!--
  var myChart = new FusionCharts("Column2D.swf", "myChartId", "300", "250", "0", "1");
  myChart.setXMLUrl("<chart></chart>");
  myChart.configure( "ChartNoDataText", "Please select a record above");
  myChart.configure( "InvalidXMLText", "Please validate data");
  myChart.render("chartContainer");
// --></script>
3.2的解决方式较好,在3.1的fusioncharts.js中是没有configure这个方法的。此方法出在3.2中倒是有。不足的是现在网上3.2的破解版还不十分完美,swf文件差异较大.
详见官方文档:http://www.fusioncharts.com/docs/ChartMessages.html

三、

fusioncharts事件处理
官网上支持的事件

Event Name When is it raised? What to use it for?
FC_Loaded(DOMId) When the chart SWF has finished downloading in the user's browser. To hide any loader components that you might have on your page.
FC_Rendered(DOMId) When the chart has finished rendering. This call is made only once per loaded chart SWF (even if new data is supplied to it via setDataURL or setDataXML method). To invoke any further JavaScript methods on chart, or to change the data of chart.
FC_DataLoaded(DOMId) When the data of the chart has finished loading - both in dataXML or dataURL method. To further process data in any other components in your page.
FC_DataLoadError(DOMId) When there was an error in loading data from the specified URL To show an error message to user, or to take a corrective measure
FC_NoDataToDisplay(DOMId) When the XML data loaded by chart didn't contain any data to display To show an error message to user, or to take a corrective measure
FC_DataXMLInvalid(DOMId) When the XML data loaded by chart was invalid (wrong XML structure) To show an error message to user, or to take a corrective measure
 使用

<HTML>
<HEAD>
   <TITLE>FusionCharts & JavaScript - Basic Example</TITLE> 
   <SCRIPT LANGUAGE="Javascript" SRC="FusionCharts.js"></SCRIPT>
   <SCRIPT LANGUAGE="JavaScript">
           function FC_Rendered(DOMId){
            if (DOMId=="chart1Id"){
             alert("Look Ma! I am Column3D and I've finished loading and rendering.");
            return false;
         }
      }
   function getChartXML(){
         var chartToPrint = getChartFromId("chart1Id");
         alert(chartToPrint.getXML());
      }

   </SCRIPT>
</HEAD>
<BODY>
   <div id="chart1div">
      FusionCharts
   </div>
   <script language="JavaScript"> 
      var chart1 = new FusionCharts("Column3D.swf", "chart1Id", "400", "300", "0", "1");
      chart1.setDataXML("<chart><set label='A' value='10' /><set label='B' value='11' /></chart>");
      chart1.render("chart1div");
   </script>
   <center><input type='button' value='Show Chart XML' onClick='javascript:getChartXML();'></center>

</BODY>
</HTML>

注意最后两个参数一定是0,1,不然事件方法是不会调用的.
 
fusioncharts如何处理y轴整数显示问题
有 时候我们图的y轴要求显示次数或数量之类的什么。这些都整数,如果放任fusioncharts自动生成DivLines,那就麻烦了,如果你的 yAxisMaxValue%numDivLines!=0的话,你的y轴间隔线上显示的就是小数,不管你怎么调其它的参数都无济于事。所以要真正实现整 数显示
你就要自己处理yAxisMaxValue,numDivLines,yAxisMinValue这些值。保证yAxisMaxValue%numDivLines==0.最近记得设置adjustDiv=0

还有一个特殊情况就是当显示数据value值为0时,y轴也会也小数的问题。这时最好手动设置yAxisMaxValue=5之类的整数 
自动设置fusioncharts的yAxisMaxValue,yAxisMinValue.
对于single series我们遍历set的value值取最大值与最小值
对于multi series 我们要取所有DataSet中最大值与最小值
有时为了显示的好看,我们最好将最大最小边界在原来的基础上增加15%的比例,以保证图型居中
<think>我们被要求解释Makefile中变量赋值几种方式及其对应的赋值行为。 常见的赋值方式有:=(延迟赋值)、:=(立即赋值)、?=(条件赋值)、+=(追加赋值)以及!=(执行shell命令赋值)。 我们需要详细说明每种赋值方式的行为,并给出示例。 注意:回答最后必须按照要求输出3-5个相关问题,且第一行必须是“§§相关问题§§”,并且问题要基于当前问题和回答。 步骤: 1. 列举Makefile中变量赋值几种方式。 2. 分别解释每种赋值方式的行为,并给出示例。 3. 按照要求输出相关问题。 注意:由于是Makefile,示例代码使用makefile的语法。</think>### Makefile变量赋值方式详解 #### 1. 基本赋值类型及行为 | 赋值运算符 | 名称 | 行为特点 | 示例 | |------------|--------------|--------------------------------------------------------------------------|--------------------------| | `=` | 递归展开赋值 | 在使用时展开变量值(延迟求值) | `A = $(B); B = 42` | | `:=` | 简单展开赋值 | 在定义时立即展开变量值(立即求值) | `C := $(D); D = 100` | | `?=` | 条件赋值 | 仅当变量未定义时赋值 | `E ?= default_value` | | `+=` | 追加赋值 | 在现有值后追加新内容(保留原值) | `F = val1; F += val2` | | `!=` | Shell结果赋值| 将Shell命令执行结果赋给变量(GNU Make扩展) | `G != date +%Y%m%d` | #### 2. 详细行为说明 ##### (1) 递归展开赋值 (`=`) ```makefile # 延迟求值示例 A = first B = $(A) second # B的值取决于A的最终值 A = final test: @echo "B = $(B)" # 输出: B = final second ``` ##### (2) 简单展开赋值 (`:=`) ```makefile # 立即求值示例 X := start Y := $(X) middle # 此时立即展开为"start middle" X := end test: @echo "Y = $(Y)" # 输出: Y = start middle ``` ##### (3) 条件赋值 (`?=`) ```makefile # 条件赋值示例 DEBUG ?= 0 # 仅在DEBUG未定义时赋值 # 命令行测试: make DEBUG=1 test: @echo "DEBUG=$(DEBUG)" ``` ##### (4) 追加赋值 (`+=`) ```makefile # 追加操作示例 CFLAGS = -Wall CFLAGS += -O2 # 等价于 CFLAGS = $(CFLAGS) -O2 test: @echo "CFLAGS=$(CFLAGS)" # 输出: -Wall -O2 ``` ##### (5) Shell结果赋值 (`!=`) ```makefile # 获取Shell命令结果 BUILD_DATE != date +%F FILE_LIST != ls *.c test: @echo "Build on: $(BUILD_DATE)" @echo "Sources: $(FILE_LIST)" ``` #### 3. 特殊赋值场景 **多行变量定义**: ```makefile define MESSAGE = This is a multi-line variable with $(value) endef ``` **覆盖命令行参数**: ```bash make CFLAGS="-O0" # 命令行赋值优先级最高 ``` **环境变量继承**: ```makefile # 导出环境变量给子进程 export PATH := $(PATH):/custom/bin ``` #### 4. 赋值优先级(从高到低) 1. 命令行指定的变量 (`make VAR=value`) 2. `override` 指令定义的变量 3. Makefile中的赋值 4. 环境变量 5. 自动变量(如 `$@`, `$^` 等)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值