0

在 Flex 3.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
}

}

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

第一次一切都很好,当我卸载这个模型并再次加载它时:

data_[0] 作为 ResultDTO;

表现不错,但是

vipsAdminDTO = result.result 作为 VIPSAdmin;

vipsAdminDTO 始终为空!

即使当

跟踪(结果。结果);

产生 [object VIPSAdmin]

我在这里想念什么!?看起来它只是不能做

result.result 作为 VIPSAdmin;

即使跟踪和调试说它是 VIPSAdmin 的实例

4

1 回答 1

0

我已经弄清楚了问题所在,问题是当我第一次在模块中实例化某些东西然后在主应用程序中时,即使它们是相同的,类也没有对齐!

所以解决方案是首先在应用程序类中创建一个假实例,然后如果您使用同一个类在模块中创建一个实例,它将起作用!

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

VIPSAdmin;

这似乎创建了某种幽灵实例,我相信稍后会被 GC 拾取,但会正确构建实例表!这解决了我的问题。

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

于 2012-10-15T21:10:39.820 回答