在Flex 3.2中将远程对象结果转换为模块中客户端的特定对象时遇到麻烦

时间:2012-09-05 05:13:44

标签: flex remoteobject

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] as ResultDTO;

执行罚款,但

vipsAdminDTO = result.result as VIPSAdmin;

vipsAdminDTO始终为null!

即使

迹(result.result);

生成[object VIPSAdmin]

我在这里错过了什么!?看起来它不能做到

result.result as VIPSAdmin;

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

1 个答案:

答案 0 :(得分:0)

我已经弄清楚问题是什么,问题是当我第一次在模块中实例化某些内容然后在主应用程序中时,不管怎样,即使它们是相同的,也不会对类进行操作!

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

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

VIPSAdmin;

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

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