2

我在 MXML 中扩展类时遇到了一些问题,我将在此处尝试解释,但我还上传了一个示例 Flash Builder 项目


考虑到我有 2 个课程:

  • game.implementation.base.view.MainView
  • game.implementation.ipad.view.MainView

请注意,它们的包名称略有不同(一个用于 ipad)。

这个想法是ipad包的类将扩展包的类base


执行上述操作会产生错误:

对 MainView 的模糊引用。【生成代码(使用-keep保存):路径:D:\FlexTests\Tests\bin-debug\generated\game\implementation\ipad\view\MainView-generated.as, Line: 95, Column: 62]

我查看了生成的代码,有问题的功能是:

_watcherSetupUtil.setup(this,
    function(propertyName:String):* { return target[propertyName]; },
    function(propertyName:String):* { return /** HERE **/ MainView[propertyName]; },
    bindings,
    watchers);

我已经缩小了问题的范围,我认为它是由以下原因引起的:

  • 扩展具有相同名称的类
  • 使用 MXML 中的绑定扩展类

有没有办法在不执行上述任何一项的情况下解决这个问题?

我不想重命名这些类,显然删除绑定不是一种选择。

4

1 回答 1

1

是的,这是编译器中的一个错误,我发现了一个旧的错误问题并克隆了它:

FLEX-33580:CLONE - 在与不同包中的基类同名的继承类中使用数据绑定时引用不明确

这仅在以下情况下发生:

(a) 扩展类与基类同名,但在不同的包中。

(b) 扩展类利用数据绑定。

解决方法是重命名其中一个类。

于 2014-06-20T01:24:46.177 回答