加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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();
			}
终于调用成功了!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读