尽管调试器指示对象是MyType,但Flex无法将Object强制转换为MyType

时间:2010-08-26 17:52:47

标签: flex flex3 blazeds

我远程调用Java后端定义的方法(使用BlazeDS)。此方法返回MyType对象。在Flex端,返回值当然包含在ResultEvent对象中并存储为Object。调试器清楚地显示ResultEvent在其结果字段中包含MyType。所以你很自然地希望我可以将一个Object的结果转换为MyType,但这样做的结果是null。这里有一些代码来说明发生了什么......

  

私有函数scenarioLoadedHandler(event:ResultEvent):void   {

     

var result:Object = event.result;

     

// willCastWork为false

     

var illCastWork:Boolean =(结果是MyType);

     

// myType为null

     

var myType:MyType = result作为MyType;   }

请记住,调试器清楚地显示结果是“MyType”类型但是转换失败了,为什么会出现这种情况?

2 个答案:

答案 0 :(得分:0)

如果浏览器正在加载缓存的.swf文件,有时会遇到类似的问题。如此清除浏览器缓存并尝试解决您的问题。

答案 1 :(得分:0)

当应用程序之间的库和库过时时,有时会发生此问题。在将模块加载到另一个应用程序中时,我遇到了同样的问题。当我处理两者之间的通信时,他们无法将对象从一个版本转换为另一个版本。