在网上搜索有数百个答案,说明为什么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 );
}
如果我在文本输入框中键入一个类名并尝试加载它,它可以正常工作 - 将完全相同的字符串传递给该函数。
任何人都知道这里发生了什么?对我来说似乎很奇怪。
答案 0 :(得分:0)
我无法相信我多久盯着这一点,却没有看到问题所在!
我输入了这个:
com.company.assets.AppFooterShadow
,这是在列表中:
com.company.assets:AppFooterShadow
冒号而不是句号!
好的,我会停止和自己说话 - 请忽略这一点!