错误描述:
typeError: Error #1034: 强制转换类型失败:无法将 mx.graphics::Stroke@b945581 转换为 mx.graphics.IStroke。
at mx.charts::AxisRenderer/measure()[C:\Work\flex\dmv_automation\projects\datavisualisation\src\mx\charts\AxisRenderer.as:1091]
at mx.core::UIComponent/measureSizes()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\core\UIComponent.as:5819]
at mx.core::UIComponent/validateSize()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\core\UIComponent.as:5765]
at mx.managers::LayoutManager/validateSize()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\managers\LayoutManager.as:559]
at mx.managers::LayoutManager/doPhasedInstantiation()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\managers\LayoutManager.as:648]
at Function/http://adobe.com/AS3/2006/builtin::apply()
at mx.core::UIComponent/callLaterDispatcher2()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\core\UIComponent.as:8460]
at mx.core::UIComponent/callLaterDispatcher()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\core\UIComponent.as:8403]
错误说明:当我在多module切换的时候就抱这个错,特别要说明的是在切换时的连个module显示的图形,一个是自己画的,一个用的flex自带的,自己画的中里面用的是IStroke,但是自带的图形是Stroke,所以切换的时候就抱错,
解决方法:
如果你是用的是IModuleInfo的话的load的时候添加ApplicationDomain.currentDomain参数就可以了,
如:info.load(ApplicationDomain.currentDomain);
如果你用的是loadModule的话,则这样
aa.applicationDomain=ApplicationDomain.currentDomain;
aa.loadModule();

本文讨论了在使用Flex框架进行多模块切换时遇到的强制转换类型失败错误,具体为将mx.graphics::Stroke类型转换为mx.graphics.IStroke类型时出现的错误#1034。通过分析错误来源,发现此错误源于自定义图形和框架内置图形在类型上的不匹配。文章提供了针对使用IModuleInfo和loadModule方法时的解决方案,即在加载模块时添加ApplicationDomain.currentDomain参数,以确保模块间的正确加载和类型兼容。

被折叠的 条评论
为什么被折叠?



