Flex4 主程序调用模块方法报TypeError: Error #1009:无法访问空
发布时间:2020-12-15 03:50:22 所属栏目:百科 来源:网络整理
导读:flex做导航菜单,页面用模块,由于在主应用需要调用某个模块下的方法: (moduleLoader.child as 模块名).方法(); ?当在这个模块下没有组件的时候,没问题,可以调用成功,并且加这个flex3的 mx:videoDisplay/这个组件也没问题 但是试了下随便加几个别的组件
flex做导航菜单,页面用模块,由于在主应用需要调用某个模块下的方法: (moduleLoader.child as 模块名).方法(); ?当在这个模块下没有组件的时候,没问题,可以调用成功,并且加这个flex3的 <mx:videoDisplay/>这个组件也没问题 但是试了下随便加几个别的组件就报错: TypeError: Error #1009: 无法访问空对象引用的属性或方法。 at mx.core::UIComponent/getStyle()[E:dev4.yframeworksprojectsframeworksrcmxcoreUIComponent.as:11127] at mx.core::UIComponent/getConstraintValue()[E:dev4.yframeworksprojectsframeworksrcmxcoreUIComponent.as:9083] at mx.core::UIComponent/get horizontalCenter()[E:dev4.yframeworksprojectsframeworksrcmxcoreUIComponent.as:9252] at spark.layouts::BasicLayout/measure()[E:dev4.yframeworksprojectssparksrcsparklayoutsBasicLayout.as:253] at spark.components.supportClasses::GroupBase/measure()[E:dev4.yframeworksprojectssparksrcsparkcomponentssupportClassesGroupBase.as:1148] at mx.core::UIComponent/http://www.adobe.com/2006/flex/mx/internal::measureSizes()[E:dev4.yframeworksprojectsframeworksrcmxcoreUIComponent.as:8506] at mx.core::UIComponent/validateSize()[E:dev4.yframeworksprojectsframeworksrcmxcoreUIComponent.as:8430] at spark.components::Group/validateSize()[E:dev4.yframeworksprojectssparksrcsparkcomponentsGroup.as:1012] at mx.managers::LayoutManager/validateSize()[E:dev4.yframeworksprojectsframeworksrcmxmanagersLayoutManager.as:665] at mx.managers::LayoutManager/doPhasedInstantiation()[E:dev4.yframeworksprojectsframeworksrcmxmanagersLayoutManager.as:792] at mx.managers::LayoutManager/doPhasedInstantiationCallback()[E:dev4.yframeworksprojectsframeworksrcmxmanagersLayoutManager.as:1180]后来就不去调用这个方法是可以,但是我在主程序中随便写的一个方法 private function test():void{ (moduleLoader.child as 模块名).方法(); } 这个方法根本就没调用,也报同样的错,后来在谷歌上一直翻一直翻,翻到点信息 就是说在module编译的时候,会自己初始化一些额外的内容,如皮肤,布局等,但是在主程序中引用这个module的时候,并没有去初始化这些额外的内容 所以就会报错 解决办法就是自己动手初始化一下就好了,在ModuleLoader控件的ready事件中加上: protected function mainML_readyHandler(event:ModuleEvent):void { event.target.child.styleManager.initProtoChainRoots(); }终于调用成功了! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |