扩展MXML组件,不明确的参考

时间:2013-05-30 13:49:00

标签: actionscript-3 flex mxml mxmlc

我在使用MXML扩展课程时遇到了一些问题,我将尝试在此解释,但我还上传了Sample Flash Builder Project


考虑我有两个班级:

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

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

我们的想法是ipad包的类将扩展base包的类。


按上述方法进行操作会产生错误:

  

对MainView的不明确引用。 [生成代码(使用-keep保存):   路径:   d:\ FlexTests \测试\ BIN调试\生成的\游戏\执行\的ipad \图\ MainView-generated.as,   行:95,栏目:62]

我查看了生成的代码,违规函数是:

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

我已将问题缩小,我认为这是由以下原因造成的:

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

有没有办法在不执行上述任何操作的情况下解决此问题?

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

1 个答案:

答案 0 :(得分:1)

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

FLEX-33580: CLONE - Ambiguous reference when using data binding in inherited class with the same name as base class in a different package

  

仅在以下情况下发生:

     
    

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

         

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

  

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