Flex中采用主SWF文件加载子SWF文件中添加了Chart后,导致at mx.charts.chartClasses::ChartBase/initStyles()异常的问题解决方法

2 篇文章 0 订阅

Flex中采用主SWF文件加载子SWF文件中添加了Chart后,或者采用模块化开发,模块中包含了图表组件时,一般都会报如下异常信息:

这是因为SDK4以上版本将样式加载分开无法初始化样式而导致。现在提供一种解决方法,在子SWF文件中模块中加入 preinitialize="preinitializeHandler(event)" ,

protected function preinitializeHandler(event:FlexEvent):void
            {
                var styleObjects:Array = FlexGlobals.topLevelApplication.styleManager.selectors;
                
                for each(var styleObj:String in styleObjects)  {
                    
                    var style:CSSStyleDeclaration = FlexGlobals.topLevelApplication.styleManager.getStyleDeclaration(styleObj);
                    
                    styleManager.setStyleDeclaration(styleObj, style, true);
                }
                
            }



TypeError: Error #1009: 无法访问空对象引用的属性或方法。
    at mx.charts.chartClasses::ChartBase/initStyles()[E:\dev\4.y\frameworks\projects\charts\src\mx\charts\chartClasses\ChartBase.as:1862]
    at mx.charts.chartClasses::ChartBase/set moduleFactory()[E:\dev\4.y\frameworks\projects\charts\src\mx\charts\chartClasses\ChartBase.as:1894]
    at mx.charts.chartClasses::CartesianChart/set moduleFactory()[E:\dev\4.y\frameworks\projects\charts\src\mx\charts\chartClasses\CartesianChart.as:816]
    at mx.charts::ColumnChart/set moduleFactory()[E:\dev\4.y\frameworks\projects\charts\src\mx\charts\ColumnChart.as:447]
    at mx.core::UIComponent/http://www.adobe.com/2006/flex/mx/internal::addingChild()[E:\dev\4.y\frameworks\projects\framework\src\mx\core\UIComponent.as:7429]
    at mx.core::Container/http://www.adobe.com/2006/flex/mx/internal::addingChild()[E:\dev\4.y\frameworks\projects\mx\src\mx\core\Container.as:3926]
    at mx.core::Container/addChildAt()[E:\dev\4.y\frameworks\projects\mx\src\mx\core\Container.as:2608]
    at mx.core::Container/addChild()[E:\dev\4.y\frameworks\projects\mx\src\mx\core\Container.as:2534]
    at mx.core::Container/createComponentFromDescriptor()[E:\dev\4.y\frameworks\projects\mx\src\mx\core\Container.as:4396]
    at mx.core::Container/createComponentsFromDescriptors()[E:\dev\4.y\frameworks\projects\mx\src\mx\core\Container.as:4183]
    at mx.core::Container/createChildren()[E:\dev\4.y\frameworks\projects\mx\src\mx\core\Container.as:3189]
    at mx.core::UIComponent/initialize()[E:\dev\4.y\frameworks\projects\framework\src\mx\core\UIComponent.as:7634]
    at mx.core::Container/initialize()[E:\dev\4.y\frameworks\projects\mx\src\mx\core\Container.as:3131]
    at mx.core::UIComponent/http://www.adobe.com/2006/flex/mx/internal::childAdded()[E:\dev\4.y\frameworks\projects\framework\src\mx\core\UIComponent.as:7495]
    at mx.core::UIComponent/addChildAt()[E:\dev\4.y\frameworks\projects\framework\src\mx\core\UIComponent.as:7199]
    at spark.components::Group/addDisplayObjectToDisplayList()[E:\dev\4.y\frameworks\projects\spark\src\spark\components\Group.as:2037]
    at spark.components::Group/http://www.adobe.com/2006/flex/mx/internal::elementAdded()[E:\dev\4.y\frameworks\projects\spark\src\spark\components\Group.as:1628]
    at spark.components::Group/setMXMLContent()[E:\dev\4.y\frameworks\projects\spark\src\spark\components\Group.as:633]
    at spark.components::Group/set mxmlContent()[E:\dev\4.y\frameworks\projects\spark\src\spark\components\Group.as:573]
    at spark.components::SkinnableContainer/set mxmlContent()[E:\dev\4.y\frameworks\projects\spark\src\spark\components\SkinnableContainer.as:657]
    at spark.components::SkinnableContainer/createDeferredContent()[E:\dev\4.y\frameworks\projects\spark\src\spark\components\SkinnableContainer.as:1050]
    at spark.components::SkinnableContainer/createContentIfNeeded()[E:\dev\4.y\frameworks\projects\spark\src\spark\components\SkinnableContainer.as:1078]
    at spark.components::SkinnableContainer/createChildren()[E:\dev\4.y\frameworks\projects\spark\src\spark\components\SkinnableContainer.as:885]
    at mx.core::UIComponent/initialize()[E:\dev\4.y\frameworks\projects\framework\src\mx\core\UIComponent.as:7634]
    at mx.core::UIComponent/http://www.adobe.com/2006/flex/mx/internal::childAdded()[E:\dev\4.y\frameworks\projects\framework\src\mx\core\UIComponent.as:7495]
    at mx.core::Container/http://www.adobe.com/2006/flex/mx/internal::childAdded()[E:\dev\4.y\frameworks\projects\mx\src\mx\core\Container.as:3974]
    at mx.core::Container/addChildAt()[E:\dev\4.y\frameworks\projects\mx\src\mx\core\Container.as:2618]
    at mx.core::Container/addChild()[E:\dev\4.y\frameworks\projects\mx\src\mx\core\Container.as:2534]
    at mx.core::Container/createComponentFromDescriptor()[E:\dev\4.y\frameworks\projects\mx\src\mx\core\Container.as:4396]
    at mx.core::Container/createComponentsFromDescriptors()[E:\dev\4.y\frameworks\projects\mx\src\mx\core\Container.as:4183]
    at mx.core::Container/createChildren()[E:\dev\4.y\frameworks\projects\mx\src\mx\core\Container.as:3189]
    at mx.core::UIComponent/initialize()[E:\dev\4.y\frameworks\projects\framework\src\mx\core\UIComponent.as:7634]
    at mx.core::Container/initialize()[E:\dev\4.y\frameworks\projects\mx\src\mx\core\Container.as:3131]
    at com.sgcc.sgtms.views.moduleFour::StateView/initialize()
    at mx.core::UIComponent/http://www.adobe.com/2006/flex/mx/internal::childAdded()[E:\dev\4.y\frameworks\projects\framework\src\mx\core\UIComponent.as:7495]
    at mx.core::Container/http://www.adobe.com/2006/flex/mx/internal::childAdded()[E:\dev\4.y\frameworks\projects\mx\src\mx\core\Container.as:3974]
    at mx.core::Container/addChildAt()[E:\dev\4.y\frameworks\projects\mx\src\mx\core\Container.as:2618]
    at mx.core::Container/addChild()[E:\dev\4.y\frameworks\projects\mx\src\mx\core\Container.as:2534]
    at mx.core::Container/createComponentFromDescriptor()[E:\dev\4.y\frameworks\projects\mx\src\mx\core\Container.as:4396]
    at mx.core::Container/createComponentsFromDescriptors()[E:\dev\4.y\frameworks\projects\mx\src\mx\core\Container.as:4183]
    at mx.core::Container/createChildren()[E:\dev\4.y\frameworks\projects\mx\src\mx\core\Container.as:3189]
    at mx.core::UIComponent/initialize()[E:\dev\4.y\frameworks\projects\framework\src\mx\core\UIComponent.as:7634]
    at mx.core::Container/initialize()[E:\dev\4.y\frameworks\projects\mx\src\mx\core\Container.as:3131]
    at mx.core::UIComponent/http://www.adobe.com/2006/flex/mx/internal::childAdded()[E:\dev\4.y\frameworks\projects\framework\src\mx\core\UIComponent.as:7495]
    at mx.core::Container/http://www.adobe.com/2006/flex/mx/internal::childAdded()[E:\dev\4.y\frameworks\projects\mx\src\mx\core\Container.as:3974]
    at mx.core::Container/addChildAt()[E:\dev\4.y\frameworks\projects\mx\src\mx\core\Container.as:2618]
    at mx.core::Container/addChild()[E:\dev\4.y\frameworks\projects\mx\src\mx\core\Container.as:2534]
    at mx.core::Container/createComponentFromDescriptor()[E:\dev\4.y\frameworks\projects\mx\src\mx\core\Container.as:4396]
    at mx.core::Container/createComponentsFromDescriptors()[E:\dev\4.y\frameworks\projects\mx\src\mx\core\Container.as:4183]
    at mx.core::Container/createChildren()[E:\dev\4.y\frameworks\projects\mx\src\mx\core\Container.as:3189]
    at mx.core::UIComponent/initialize()[E:\dev\4.y\frameworks\projects\framework\src\mx\core\UIComponent.as:7634]
    at mx.core::Container/initialize()[E:\dev\4.y\frameworks\projects\mx\src\mx\core\Container.as:3131]
    at mx.core::UIComponent/http://www.adobe.com/2006/flex/mx/internal::childAdded()[E:\dev\4.y\frameworks\projects\framework\src\mx\core\UIComponent.as:7495]
    at mx.core::Container/http://www.adobe.com/2006/flex/mx/internal::childAdded()[E:\dev\4.y\frameworks\projects\mx\src\mx\core\Container.as:3974]
    at mx.core::Container/addChildAt()[E:\dev\4.y\frameworks\projects\mx\src\mx\core\Container.as:2618]
    at mx.core::Container/addChild()[E:\dev\4.y\frameworks\projects\mx\src\mx\core\Container.as:2534]
    at mx.core::Container/createComponentFromDescriptor()[E:\dev\4.y\frameworks\projects\mx\src\mx\core\Container.as:4396]
    at mx.core::Container/createComponentsFromDescriptors()[E:\dev\4.y\frameworks\projects\mx\src\mx\core\Container.as:4183]
    at mx.core::Container/createChildren()[E:\dev\4.y\frameworks\projects\mx\src\mx\core\Container.as:3189]
    at mx.core::UIComponent/initialize()[E:\dev\4.y\frameworks\projects\framework\src\mx\core\UIComponent.as:7634]
    at mx.core::Container/initialize()[E:\dev\4.y\frameworks\projects\mx\src\mx\core\Container.as:3131]
    at mx.core::UIComponent/http://www.adobe.com/2006/flex/mx/internal::childAdded()[E:\dev\4.y\frameworks\projects\framework\src\mx\core\UIComponent.as:7495]
    at mx.core::UIComponent/addChildAt()[E:\dev\4.y\frameworks\projects\framework\src\mx\core\UIComponent.as:7199]
    at spark.components::Group/addDisplayObjectToDisplayList()[E:\dev\4.y\frameworks\projects\spark\src\spark\components\Group.as:2037]


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值