您的位置:首页 > 其它

Flex的模块加载图表控件出现Error #1009解决之道

2014-02-26 10:27 561 查看
/article/3886806.html

在做ColumnChart时,发现总出现如下异常:

Java代码


1009 - Error #1009: Cannot access a property or method of a null object reference.

TypeError: Error #1009: Cannot access a property or method of a null object reference.

at mx.charts.chartClasses::ChartBase/initStyles()

at mx.charts.chartClasses::ChartBase/set moduleFactory()

at mx.charts.chartClasses::CartesianChart/set moduleFactory()

at mx.charts::ColumnChart/set moduleFactory()

这个问题找了很久才发现只是在模块中包含该图表控件时才出现,经查ChartBase源代码发现是1862行出的错(sdk4.6),

Java代码


var chartBaseStyle:CSSStyleDeclaration = styleManager.getStyleDeclaration("mx.charts.chartClasses.ChartBase");

取得chartBaseStyle为空。

此问题解决办法是,在模块主程序(Module的那个mxml)中覆盖如下方法:

Java代码


override public function get moduleFactory():IFlexModuleFactory {

return mx.core.FlexGlobals.topLevelApplication.moduleFactory;

}

另外,如果如果主应用加载的模块里的图表chart的DataTip显示颜色有问题,需要在主应用(包含ModuleLoader的那个application)中预先加载下用到的Chart类,比如LineChart:

Java代码


private var temp:LineChart=null;//预先加载一下linechart类,解决chart的DataTip显示颜色的flex4bug

如果在该模块中用其他spark控件使用时出现皮肤丢失问题,方便起见,可以在应用编译时增加 -keep-all-type-selectors=true参数。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐