【问题标题】:Odd getDefinitionByName behaviour - not import related奇怪的 getDefinitionByName 行为 - 与导入无关
【发布时间】: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


    【解决方案1】:

    我不敢相信我已经盯着这个看了多久,却没有发现问题所在!

    我输入了这个:

    com.company.assets.AppFooterShadow

    这在列表中:

    com.company.assets:AppFooterShadow

    冒号而不是句号!

    好的,我不再自言自语了——请忽略这个!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-09
      • 1970-01-01
      • 2018-09-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-09
      • 2021-02-27
      相关资源
      最近更新 更多