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;
       }
      
      
    从娃抓起学抓娃
  • 相关阅读:
    ios录音
    ios 音乐播放
    ios程序播放音频文件
    ios摇一摇截屏代码
    加速计
    蓝牙4.0实现及原理
    物理仿真
    iOS 监听耳机变化
    删除缓存
    宏定义加参数
  • 原文地址:https://www.cnblogs.com/javasharp/p/3764852.html
Copyright © 2011-2022 走看看