Apache flex 在Flex 3.2中,在将远程对象结果转换为模块中客户端的特定对象时遇到问题

Apache flex 在Flex 3.2中,在将远程对象结果转换为模块中客户端的特定对象时遇到问题,apache-flex,remoteobject,Apache Flex,Remoteobject,在Flex3.2中,在将远程对象结果转换为模块中客户端的特定对象时遇到问题 例如,我有VIPSAdmin模块 它有功能 private function doResult(event:ResultEvent):void { var data_:Array = ArrayUtil.toArray(event.result); var result:ResultDTO = data_[0] as ResultDTO; if(!result.isError()) { trace(result

在Flex3.2中,在将远程对象结果转换为模块中客户端的特定对象时遇到问题

例如,我有VIPSAdmin模块

它有功能

private function doResult(event:ResultEvent):void {
var data_:Array = ArrayUtil.toArray(event.result); 
var result:ResultDTO = data_[0] as ResultDTO;
if(!result.isError()) {
    trace(result.result);
    vipsAdminDTO = result.result as VIPSAdmin;
    compId= vipsAdminDTO.compId; // second time dying here
}
}

从远程对象获取数据时调用的函数

第一次非常好,当我卸载此模块并再次加载时:

数据_u0]作为结果To

表现不错,但是

VipsAdminTo=结果。结果为VIPSAdmin

VipsAdminTo始终为空

即使

跟踪(result.result)

产生[对象VIPSAdmin]

我在这里错过了什么!?看起来这根本不行

结果:结果为VIPSAdmin


即使trace and debug说这是VipAdmin的实例,我已经找出了问题所在,问题是当我第一次在模块中实例化某个东西,然后在主应用程序中实例化时,不知何故,类并没有对齐,即使它们是相同的

所以,解决方案是首先在应用程序类中创建一个假实例,然后若您使用同一个类在模块中创建一个实例,那个么它就可以工作了

我在我刚刚添加的主应用程序类中做得非常简单:

VIPSAdmin;
这似乎创建了某种类型的ghost实例,我相信GC稍后将拾取它,但它将正确地构建实例表!这解决了我的问题


不确定这是否是合适的解决方案!但它确实有效。

我怀疑你的演员阵容有问题。有时,如果强制转换失败,结果将设置为null。您可以尝试:VIPSAdmin(result.result)而不是result.result作为VIPSAdmin