apache-flex - Flex 3.2 转换问题

标签 apache-flex actionscript-3 casting

我是新手,最近遇到了障碍。

这是我正在运行的代码。

/**
* 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 时会出现问题。抛出如下错误

TypeError: Error #1034: Type Coercion failed: cannot convert com.mystuff::CSBackgroundItem@650e8dd1 to com.mystuff.CSBackgroundItem.

如果我使用 'as' 关键字,我会得到 colourItem 中的转换结果为 null。使用调试器显示列表不为空,并且确实填充了 CSBackgroundItem 对象。

现在这是古怪的一点..这段代码有效,第一次加载模块时..后续加载(卸载后)抛出异常。

谁能解释为什么会发生这种情况?

最佳答案

仅供引用,加载到子 ApplicationDomain 中的类型可以转换为父 ApplicationDomain 中的类型(它扩展/实现)。

例如。

loader.applicationDomain = ApplicationDomain.currentDomain; // parent domain
loader.applicationDomain = new ApplicationDomain(ApplicationDomain.currentDomain); // child domain
loader.applicationDomain = new ApplicationDomain(); // new domain

关于apache-flex - Flex 3.2 转换问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/886674/

相关文章:

apache-flex - 如何在 ActionScript 3/Flex 中缩放 OSMF 播放器

actionscript-3 - 获取Flash中音频样本的总长度

c++ - 如何防止隐式强制转换 double -> int?

javascript - 当用户关闭浏览器时执行 Flex 清理功能

java - 为什么 List<String> 不能作为 List<Object> 接受?

java - 将 java 参数从 String 转换为 LinkedList

apache-flex - 找出按下的字符

iphone - 在 Flex 制作的 iOS 应用程序中播放电影

apache-flex - Flex 3 绑定(bind)问题

actionscript-3 - 无法从浏览器连接到服务器