【发布时间】:2010-02-04 17:58:32
【问题描述】:
在网上搜索有数百个关于 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 );
}
如果我在文本输入框中键入类名并尝试加载它,它工作正常 - 将完全相同的字符串传递给函数。
有人知道这里发生了什么吗?我觉得很奇怪。
【问题讨论】:
标签: apache-flex