Error #1034: 强制转换类型失败:无法将 mx.graphics::Stroke@b945581 转换为 mx.graphics.IStroke

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

错误描述:

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();


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值