我最近将一些代码从Flex项目移植到了新的纯AS3项目中。当我尝试进行AMF呼叫时,出现如下错误消息:

TypeError:错误#1034:类型强制失败:无法将Object @ 5425371转换为mx.messaging.messages.ErrorMessage。

没有与错误相关的堆栈跟踪,因此调试很困难。

我尝试了所有方式(检查是否包含来自flex框架的所有必需库,等等),但没有任何效果。

最佳答案

一段时间后,我找到了答案:Flex在启动时进行了一些初始化,否则AMF类将无法运行。幸运的是,Adobe已经想到了那些想从非弹性项目或Flash使用AMF的人,并提供了一种执行AMF所需的初始化的方法。

我在应用程序的开头添加了这一行,突然所有的AMF调用都像在Flex项目中一样工作:

RpcClassAliasInitializer.registerClassAliases();

(是的,我回答了自己的问题。我没有找到任何针对此问题的博客或搜索结果,因此,我在此分享问题并在此修复。)

08-05 19:21