TypeError: Error #1009: 无法访问空对象引用的属性或方法。
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()
at mx.core::UIComponent/http://www.adobe.com/2006/flex/mx/internal::addingChild()
at mx.core::Container/http://www.adobe.com/2006/flex/mx/internal::addingChild()
at mx.core::Container/addChildAt()
at mx.core::Container/addChild()
at mx.core::Container/createComponentFromDescriptor()
at mx.core::Container/createComponentsFromDescriptors()
at mx.core::Container/createChildren()
at mx.core::UIComponent/initialize()
at mx.core::Container/initialize()
at mx.core::UIComponent/http://www.adobe.com/2006/flex/mx/internal::childAdded()
at mx.core::Container/http://www.adobe.com/2006/flex/mx/internal::childAdded()
at mx.core::Container/addChildAt()
at mx.core::Container/addChild()
at mx.core::Container/createComponentFromDescriptor()
at mx.core::Container/createComponentsFromDescriptors()
at mx.core::Container/createChildren()
at mx.core::UIComponent/initialize()
at mx.core::Container/initialize()
at mx.core::UIComponent/http://www.adobe.com/2006/flex/mx/internal::childAdded()
at mx.core::UIComponent/addChildAt()
at spark.components::Group/addDisplayObjectToDisplayList()
at spark.components::Group/http://www.adobe.com/2006/flex/mx/internal::elementAdded()
at spark.components::Group/setMXMLContent()
at spark.components::Group/set mxmlContent()
at spark.components::SkinnableContainer/set mxmlContent()
at spark.components::SkinnableContainer/createDeferredContent()
at spark.components::SkinnableContainer/createContentIfNeeded()
at spark.components::SkinnableContainer/createChildren()
at mx.core::UIComponent/initialize()
at mx.core::UIComponent/http://www.adobe.com/2006/flex/mx/internal::childAdded()
at mx.core::Container/http://www.adobe.com/2006/flex/mx/internal::childAdded()
at mx.core::Container/addChildAt()
at mx.core::Container/addChild()
at mx.core::Container/createComponentFromDescriptor()
at mx.core::Container/createComponentsFromDescriptors()
at mx.core::Container/createChildren()
at mx.core::UIComponent/initialize()
at mx.core::Container/initialize()
at widgets.PerformanceIndicators::PerformanceIndicatorsWidget/initialize()
at mx.core::UIComponent/http://www.adobe.com/2006/flex/mx/internal::childAdded()
at mx.core::UIComponent/addChildAt()
at spark.components::Group/addDisplayObjectToDisplayList()
at spark.components::Group/http://www.adobe.com/2006/flex/mx/internal::elementAdded()
at spark.components::Group/addElementAt()
at spark.components::Group/addElement()
at widgets.WidgetContainer::WidgetContainer/addWidget()[D:\天津出差\环境局\project\HJ20130407\src\widgets\WidgetContainer\WidgetContainer.mxml:147]
at widgets.WidgetContainer::WidgetContainer/addElement()[D:\天津出差\环境局\project\HJ20130407\src\widgets\WidgetContainer\WidgetContainer.mxml:130]
at widgets.WidgetContainer::WidgetContainerWidget/addWidget()[D:\天津出差\环境局\project\HJ20130407\src\widgets\WidgetContainer\WidgetContainerWidget.mxml:55]
at com.esri.viewer.managers::WidgetManager/openWidget()[D:\天津出差\环境局\project\HJ20130407\src\com\esri\viewer\managers\WidgetManager.mxml:1109]
at com.esri.viewer.managers::WidgetManager/runWidget()[D:\天津出差\环境局\project\HJ20130407\src\com\esri\viewer\managers\WidgetManager.mxml:1134]
at com.esri.viewer.managers::WidgetManager/widgetReadyHandler()[D:\天津出差\环境局\project\HJ20130407\src\com\esri\viewer\managers\WidgetManager.mxml:1201]
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at ModuleInfoProxy/moduleEventHandler()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at ModuleInfo/readyHandler()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at mx.core::FlexModuleFactory/update()
倒是有一个相关的帖子:
http://forums.adobe.com/message/4143789 说明了原因
http://hi.baidu.com/haoqionghaozi/item/14166d3e358bbd1c9dc65e37 有解决方法
==============================================
解决方法示例:
在使用图表控件的模块中添加事件
<viewer:BaseWidget xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
xmlns:viewer="com.esri.viewer.*"
xmlns:components="com.esri.viewer.components.*"
xmlns:esri="http://www.esri.com/2008/ags"
preinitialize="basewidget_preinitializeHandler(event)"
响应事件的函数代码:
private function basewidget_preinitializeHandler(event:FlexEvent):void
{
// work-around for 4.6 regression
copyStyleFromParent("mx.charts.chartClasses.ChartBase");
copyStyleFromParent("mx.charts.chartClasses.CartesianChart");
copyStyleFromParent("mx.charts.chartClasses.PolarChart");
copyStyleFromParent("mx.charts.BarChart");
copyStyleFromParent("mx.charts.ColumnChart");
copyStyleFromParent("mx.charts.LineChart");
copyStyleFromParent("mx.charts.PieChart");
copyStyleFromParent("mx.charts.AxisRenderer");
copyStyleFromParent(".blockCategoryAxis");
copyStyleFromParent(".blockNumericAxis");
copyStyleFromParent(".linedNumericAxis");
copyStyleFromParent(".dashedNumericAxis");
copyStyleFromParent(".dashedCategoryAxis");
copyStyleFromParent(".hangingCategoryAxis");
copyStyleFromParent("mx.charts.GridLines");
copyStyleFromParent(".horizontalGridLines");
copyStyleFromParent("mx.charts.series.BarSeries");
copyStyleFromParent("mx.charts.series.ColumnSeries");
copyStyleFromParent("mx.charts.series.LineSeries");
copyStyleFromParent("mx.charts.series.PieSeries");
}
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);
}
}
}
***************************************************
* 路过的请留下见解和问题描述,相互交流学习。
****************************************************