zoukankan      html  css  js  c++  java
  • 【原创】关于flexviewer中引入图表时报的TypeError #1009解决方法

         在自定义的widget中引入图表后,运行时出现TypeError #1009错误。本人网上查找了很多资料,其中大部分都是关于Flash中的动画效果问题,与这里的问题关系型不太大。故把问题的解决方法写在这里,与人方便,与己方便。

         方法一:

         1.在自定义的widget中添加如下两个方法:

                          private function copyStyleFromParent(selector:String):void
                         {
                                var chartBaseStyle:CSSStyleDeclaration = styleManager.getStyleDeclaration(selector);
                                if (!chartBaseStyle && styleManager.parent)
                               {
                                       var parentStyle:CSSStyleDeclaration = styleManager.parent.getStyleDeclaration(selector);
                                       if (parentStyle)
                                      {
                                             styleManager.setStyleDeclaration(selector, parentStyle, false);
                                      }
                               }
                         }
     
                          protected function preinitializeHandler ():void
                         {
                                var styleObjects:Array =new Array();//FlexGlobals.topLevelApplication.styleManager.selectors;
                               styleObjects.push( "mx.charts.chartClasses.ChartBase" );
                                styleObjects.push( "mx.charts.chartClasses.CartesianChart" );
                                styleObjects.push( "mx.charts.chartClasses.PolarChart" );
                               styleObjects.push( "mx.charts.BarChart");
                               styleObjects.push( "mx.charts.ColumnChart" );
                               styleObjects.push( "mx.charts.LineChart");
                               styleObjects.push( "mx.charts.PieChart");
                               styleObjects.push( "mx.charts.AxisRenderer" );
                               styleObjects.push( ".blockCategoryAxis");
                               styleObjects.push( ".blockNumericAxis");
                               styleObjects.push( ".linedNumericAxis");
                               styleObjects.push( ".dashedNumericAxis");
                               styleObjects.push( ".dashedCategoryAxis");
                               styleObjects.push( ".hangingCategoryAxis");
                               styleObjects.push( "mx.charts.GridLines");
                               styleObjects.push( ".horizontalGridLines");
                               styleObjects.push( "mx.charts.series.BarSeries" );
                               styleObjects.push( "mx.charts.series.ColumnSeries" );
                               styleObjects.push( "mx.charts.series.LineSeries" );
                               styleObjects.push( "mx.charts.series.PieSeries" );
                               
                                for each(var styleObj:String in styleObjects) {
                                 
                                      copyStyleFromParent(styleObj);
                               }
                         }
      2.在该自定义widget头部中添加preinitialize="preinitializeHandler ()" 。
          方法二:
          在自定义widget中覆盖父类的moduleFactory方法:
      override public function get moduleFactory():IFlexModuleFactory {
         return FlexGlobals.topLevelApplication.moduleFactory;
       }
      
      
    从娃抓起学抓娃
  • 相关阅读:
    清除浮动的几种方法
    call() 、 apply() 、bind()方法的作用和区别!
    关于如何通过json更改背景图片
    js验证码实现
    解决python3 UnicodeDecodeError: 'gbk' codec can't decode byte
    Rest接口测试,巧用firebug插件
    PHP中字符串的连接和换行
    PHP内置函数file_put_content(),将数据写入文件,使用FILE_APPEND 参数进行内容追加
    PHP的三种输出方式
    PHP中的include、include_once、require、require_once
  • 原文地址:https://www.cnblogs.com/javasharp/p/3764852.html
Copyright © 2011-2022 走看看