奇数getDefinitionByName行为 - 与导入无关

时间:2010-02-04 17:58:33

标签: flex

在网上搜索有数百个答案,说明为什么getDefinitionByName不起作用 - 因为您尝试获取的类定义未包含在swf中。

这不是那个问题。

我的应用程序在运行时加载swc,解压缩,读取xml并显示该swc中的类列表。然后,您可以选择一个类,它将被添加到舞台上。

当我加载swc并尝试使用getDefinitionByName时,我得到以下跟踪:

获取类:com.company.assets:AppFooterShadow
错误:错误#1065:可变资产:未定义AppFooterShadow。

com.company从开头就被删除了!

来自类似的代码:

try
{
    trace( "getting class: " + definition );
    var currentClass : Class = getDefinitionByName( definition ) as Class;
}
catch( e : Error )
{
    trace( "error: " + e.message );
}

如果我在文本输入框中键入一个类名并尝试加载它,它可以正常工作 - 将完全相同的字符串传递给该函数。

任何人都知道这里发生了什么?对我来说似乎很奇怪。

1 个答案:

答案 0 :(得分:0)

我无法相信我多久盯着这一点,却没有看到问题所在!

我输入了这个:

com.company.assets.AppFooterShadow

,这是在列表中:

com.company.assets:AppFooterShadow

冒号而不是句号!

好的,我会停止和自己说话 - 请忽略这一点!