我刚刚尝试弯曲,最近碰到了一个绊脚石铸件。Flex 3.2铸造问题
这是我正在运行的代码。
/**
* return background definition depending on time
*/
private function findBackgroundItem(relativeTime : Number) : CSBackgroundItem
{
if(this.backgroundItems == null) return null;
var result :CSBackgroundItem = null;
var relative:Date = new Date(relativeTime);
for(var i : Number = 0; i < this.backgroundItems.length; i++)
{
// backgroundItems is an Ilist of CSBackgroundItem.
var colourItem : CSBackgroundItem = CSBackgroundItem(this.backgroundItems.getItemAt(i));
// other stuff here
}
return result;
}
问题当IList.getItemsAt()结果转换到CSBackgroundItem可变colourItem发生。如果我使用'as'
关键字,我得到的colourItem
投结果是空以下错误抛出
TypeError: Error #1034: Type Coercion failed: cannot convert com.mystuff::[email protected] to com.mystuff.CSBackgroundItem.
。使用调试器显示该列表不是空的,并确实填充了CSBackgroundItem
对象。
现在这是古怪的位..这段代码工作,它第一次加载模块..后续加载(卸载后)抛出异常。
任何人都可以阐明为什么会发生这种情况?
使用ObjectUtil.copy()与'as'关键字具有相同的结果,'colourItem'对象保留为空而不是异常。 – Scrimmers 2009-05-20 07:58:11