首先,我是把.swf文件嵌在了用户控件.ascx文件里
其次,页面上有个按扭,每次点击这个按扭时生成一个xml文件,他是flash文件的数据源文件
接着,flash会缓存数据,使得我每次点击按扭后生成的数据不会在flash中显示出来我的代码:
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" id="FlashVars" align="middle" style="width: 700; height: 500">
  <param name="allowScriptAccess" value="sameDomain" />
  <param name="movie" value="Share/flash/ColumnChart.swf" />
  <param name="FlashVars" value="arg= Share/flash/ChartXml/Compare_ColumnChart.xml" />
  <param name="quality" value="high" />
  <param name="bgcolor" value="#ffffff" />
  <embed src="Share/flash/ColumnChart.swf" quality="high" bgcolor="#ffffff" width="1024" height="768" name="FlashVars" align="middle" allowScriptAccess="sameDomain" FlashVars="arg= Share/flash/ChartXml/Compare_ColumnChart.xml" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>我要具体的解决方案~谢谢

解决方案 »

  1.   

    在ascx的load里面加一句this.Response.Expires = 0;试试呵呵,lz用的是FusionCharts 把,是不是从资源下载里面下的?
      

  2.   

    我是那个发资源的,就因为文件大,csdn限制每个最大10m,我分了两个包,快被骂死了附上反编译得到的所有参数,可以参考猜出用处
    decimalPrecision='0'  纵轴 0显示整数   1 显示一位小数   4 显示4位小数  formatNumberScale='0' 关闭自动格式化功能  (以前是10000 自动格式化为10k)
    decimalPrecision='0'
    formatNumber='0'
    decimalSeparator=','  会计分隔符
    thousandSeparator='.'  小数分隔符numberPrefix="$"  数字前的符号BaseFontSize ='12' 字体大小
    caption='' 顶部主标题
    subcaption='' 顶部副标题
    xaxisname='图示' 底部标题bgColor='DAE7FC,FFFFFF'  背景渐变
    bgSWF='ChartBg.jpg'  背景图片
    borderColor='000000' 边框颜色
    baseFontColor 背景字体颜色
    canvasBgAlpha='30' 背景透明度==========================
    所有参数params.palette = this.getFN(_loc2.palette, 1);
            params.showFCMenuItem = this.toBoolean(this.getFN(_loc2.showfcmenuitem, 1));
            params.bgColor = this.getFV(_loc2.bgcolor, defColors.get2DBgColor(params.palette));
            params.bgAlpha = this.getFV(_loc2.bgalpha, defColors.get2DBgAlpha(params.palette));
            params.bgRatio = this.getFV(_loc2.bgratio, defColors.get2DBgRatio(params.palette));
            params.bgAngle = this.getFV(_loc2.bgangle, defColors.get2DBgAngle(params.palette));
            params.showBorder = this.toBoolean(this.getFN(_loc2.showborder, 1));
            params.borderColor = this.formatColor(this.getFV(_loc2.bordercolor, defColors.get2DBorderColor(params.palette)));
            params.borderThickness = this.getFN(_loc2.borderthickness, 1);
            params.borderAlpha = this.getFN(_loc2.borderalpha, defColors.get2DBorderAlpha(params.palette));
            params.bgSWF = this.getFV(_loc2.bgswf, "");
            params.bgSWFAlpha = this.getFV(_loc2.bgswfalpha, 100);
            params.clickURL = this.getFV(_loc2.clickurl, "");
            params.caption = this.getFV(_loc2.caption, "");
            params.subCaption = this.getFV(_loc2.subcaption, "");
            params.captionPadding = this.getFN(_loc2.captionpadding, 10);
            params.animation = this.toBoolean(this.getFN(_loc2.animation, 1));
            params.defaultAnimation = this.toBoolean(this.getFN(_loc2.defaultanimation, 1));
            params.showNames = this.toBoolean(this.getFN(_loc2.showlabels, _loc2.shownames, 1));
            params.showValues = this.toBoolean(this.getFN(_loc2.showvalues, 1));
            params.placeLabelsInside = this.toBoolean(this.getFN(_loc2.placelabelsinside, 0));
            params.showPercentValues = this.toBoolean(this.getFN(_loc2.showpercentvalues, _loc2.showpercentagevalues, _loc2.showpercentageinlabel, 0));
            params.showPercentInToolTip = this.toBoolean(this.getFN(_loc2.showpercentintooltip, 1));
            params.showToolTip = this.toBoolean(this.getFN(_loc2.showtooltip, _loc2.showhovercap, 1));
            params.toolTipBgColor = String(this.formatColor(this.getFV(_loc2.tooltipbgcolor, _loc2.hovercapbgcolor, _loc2.hovercapbg, defColors.get2DToolTipBgColor(params.palette))));
            params.toolTipBorderColor = String(this.formatColor(this.getFV(_loc2.tooltipbordercolor, _loc2.hovercapbordercolor, _loc2.hovercapborder, defColors.get2DToolTipBorderColor(params.palette))));
            params.toolTipSepChar = this.getFV(_loc2.tooltipsepchar, _loc2.hovercapsepchar, ", ");
            params.labelSepChar = this.getFV(_loc2.labelsepchar, params.toolTipSepChar);
            params.baseFont = this.getFV(_loc2.basefont, "Verdana");
            params.baseFontSize = this.getFN(_loc2.basefontsize, 9);
            params.baseFontColor = String(this.formatColor(this.getFV(_loc2.basefontcolor, defColors.get2DBaseFontColor(params.palette))));
            params.formatNumber = this.toBoolean(this.getFN(_loc2.formatnumber, 1));
            params.formatNumberScale = this.toBoolean(this.getFN(_loc2.formatnumberscale, 1));
            params.defaultNumberScale = this.getFV(_loc2.defaultnumberscale, "");
            params.numberScaleUnit = this.getFV(_loc2.numberscaleunit, "K,M");
            params.numberScaleValue = this.getFV(_loc2.numberscalevalue, "1000,1000");
            params.numberPrefix = this.getFV(_loc2.numberprefix, "");
            params.numberSuffix = this.getFV(_loc2.numbersuffix, "");
            params.decimalSeparator = this.getFV(_loc2.decimalseparator, ".");
            params.thousandSeparator = this.getFV(_loc2.thousandseparator, ",");
            params.inDecimalSeparator = this.getFV(_loc2.indecimalseparator, "");
            params.inThousandSeparator = this.getFV(_loc2.inthousandseparator, "");
            params.decimals = this.getFN(_loc2.decimals, _loc2.decimalprecision, 2);
            params.forceDecimals = this.toBoolean(this.getFN(_loc2.forcedecimals, 0));
            params.showShadow = this.toBoolean(this.getFN(_loc2.showshadow, 1));
            params.shadowColor = this.formatColor(this.getFV(_loc2.shadowcolor, "666666"));
            params.shadowAlpha = this.getFN(_loc2.shadowalpha, 100);
            params.pieRadius = Math.abs(this.getFN(_loc2.pieradius, 0));
            params.startingAngle = this.getFN(_loc2.startingangle, 0);
            params.showPlotBorder = this.toBoolean(this.getFN(_loc2.showplotborder, 1));
            params.pieBorderThickness = this.getFN(_loc2.plotborderthickness, _loc2.pieborderthickness, 1);
            params.pieBorderAlpha = this.getFN(_loc2.plotborderalpha, _loc2.pieborderalpha, params.showPlotBorder == true ? (80) : (0));
            params.pieBorderColor = this.getFV(_loc2.plotbordercolor, _loc2.piebordercolor);
            params.pieFillAlpha = this.getFN(_loc2.plotfillalpha, _loc2.piefillalpha, 100);
            params.gradientFill = this.toBoolean(this.getFN(_loc2.use3dlighting, 1));
      

  3.   


    这个不起作用啊声明:我对flash不了解,等待新的回答,分数大大的有~谢谢
      

  4.   

    这个flash报表最好不要写文件,容易产生并发冲突我采用了将xml数据作为参数传递给flash的方法。因为我反编译之后发现有个参数是可以接受xml数据流的。不必再生成文件了。这样可以解决flash显示数据的并发冲突问题
    #region flash绑定数据 /// <summary>
    /// 统计方法
    /// </summary>
    private void GetData (DataSet ds)
    {

    StringBuilder _XmlTemp = new StringBuilder();
    _XmlTemp.Append("<chart palette='2' bgColor='DAE7FC,FFFFFF' decimalPrecision='0' BaseFontSize ='12' caption='"  + this.ddl_reportType.SelectedItem.Text.Trim() + "统计' subcaption='" 
    + this.txt_beginTime.Text + " 至 " + this.txt_endTime.Text + "' shownames='1' showvalues='0' numberPrefix='' useRoundEdges='1' legendBorderAlpha='0' bgswf='../images/report_bg.gif'  baseFontColor='000000' canvasBgAlpha='50' borderColor='000000' borderThickness='3' captionPadding ='0'  >" );
    _XmlTemp.Append("<styles>");
          _XmlTemp.Append("<definition>");
             _XmlTemp.Append("<style name='myFont' type='font' isHTML='1' bold='1' size='12' color='FFFFFF' />");
             _XmlTemp.Append("<style name='myShadow' type='shadow' color='333333' angle='45' strength='3'/>");
          _XmlTemp.Append("</definition>");
          _XmlTemp.Append("<application>");
             _XmlTemp.Append("<apply toObject='YAxisValues' styles='myFont,myShadow' />");
             _XmlTemp.Append("<apply toObject='DataLabels' styles='myFont,myShadow' />");
             _XmlTemp.Append("<apply toObject='DataValues' styles='myFont,myShadow' />");
             _XmlTemp.Append("<apply toObject='Caption' styles='myFont,myShadow' />");
      _XmlTemp.Append("<apply toObject='subcaption' styles='myFont,myShadow' />");
          _XmlTemp.Append("</application>");
       _XmlTemp.Append("</styles>"); //连接标签 _XmlTemp.Append("<categories>"); for (int i = 0 ; i < ds.Tables[0].Rows.Count ; i++)
    {//标签
    _XmlTemp.Append("<category label='" + sdxf.CommonClass.getUserName(Convert.ToInt32(ds.Tables[0].Rows[i]["userID"].ToString())) + "' />");
    }
    _XmlTemp.Append("</categories>");
    //以下连接数据 _XmlTemp.Append("<dataset seriesName='" + this.ddl_reportType.SelectedItem.Text.Trim() + "' color='F6BD0F' showValues='0'>"); for (int i = 0 ; i < ds.Tables[0].Rows.Count ; i++)
    {//标签
    _XmlTemp.Append("<set value='" + ds.Tables[0].Rows[i]["counter"].ToString() + "' />");
    } _XmlTemp.Append("</dataset>");
    _XmlTemp.Append("</chart>");
    ViewState["XmlData"] = _XmlTemp.ToString();
    //显示
    ViewFlash();
    }
    //显示flash
    private void ViewFlash()
    {
    StringBuilder XmlStr = new StringBuilder();
    if (ViewState["XmlData"] != null && ViewState["XmlData"].ToString() != "")
    {
    XmlStr.Append("<div align='center'>");
    XmlStr.Append("<object classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" codebase=\"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0\" WIDTH=\"600\" HEIGHT=\"350\" id=\"FusionCharts\" VIEWASTEXT>");
    XmlStr.Append("<param NAME=\"movie\" VALUE=\"../flashReport/scrollBar/ScrollColumn2D.swf?currTime=9%2F25%2F2006+2%3A13%3A38+AM&dataXML="
    + ViewState["XmlData"].ToString()
    + "&chartWidth=600&chartHeight=350\">");
    XmlStr.Append("<param NAME=\"FlashVars\" VALUE=\"\">");
    XmlStr.Append("<param NAME=\"quality\" VALUE=\"high\">");
    XmlStr.Append("<param NAME=\"bgcolor\" VALUE=\"#FFFFFF\">");
    XmlStr.Append("<embed src=\"../flashReport/scrollBar/ScrollColumn2D.swf?currTime=9%2F25%2F2006+2%3A13%3A38+AM&dataXML="
    + ViewState["XmlData"].ToString()
    +"&chartWidth=600&chartHeight=350\" FlashVars=\"\" quality=\"high\" bgcolor=\"#FFFFFF\" WIDTH=\"600\" HEIGHT=\"350\" NAME=\"FusionCharts\" ALIGN TYPE=\"application/x-shockwave-flash\" PLUGINSPAGE=\"http://www.macromedia.com/go/getflashplayer\">");
    XmlStr.Append("</object>");
    XmlStr.Append("</div>");
    this.div_flash.InnerHtml = XmlStr.ToString();
    }

    }
    #endregion
      

  5.   

    每次load都调用一下这个方法,如果没有,就把div内容弄成空的就可以了。
      

  6.   

    要想代码最最精简,还是反编译flash修改flash源码,只是有点麻烦
    我就是这样实现的
      

  7.   


    lz 你的问题是怎么解决的?
    我的问题和你的差不多~
    我是放在用户控件里 flash.