使用Flash或Pure AS3项目中的RemoteObject(AMF)

时间:2012-01-24 12:51:10

标签: flash actionscript-3 flex amf remoteobject

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

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

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

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

2 个答案:

答案 0 :(得分:7)

一段时间后,我找到了答案:Flex在启动时进行了一些初始化,AMF类在没有的情况下将无法运行。幸运的是Adobe想到了那些想要从非flex项目或flash中使用AMF的人,并提供了一种方法来进行AMF所需的初始化。

我将此行添加到应用程序的开头,突然所有AMF调用都与我在Flex项目中的调用一样:

RpcClassAliasInitializer.registerClassAliases();

(是的,我回答了我自己的问题。我没有找到任何关于这个问题的博客或搜索结果,所以我在这里分享问题并修复。)

答案 1 :(得分:0)

我知道回复有点晚了,但你不能使用flash.net.registerClassAlias吗?似乎RpcClassAliasInitializermx.utils package的一部分,它仍然是Flex库的一部分。