代码之家  ›  专栏  ›  技术社区  ›  Thomas Auinger

在MXML中使用常量时,flex错误1120(访问未定义的属性xxx)

  •  0
  • Thomas Auinger  · 技术社区  · 15 年前

    再次拔出我的头发,因为一些弹性/AS3怪异。由于错误1120,以下代码无法编译-访问未定义的属性AbstractWizardModel

    <mx:HBox id="cntr_buttons" width="100%" horizontalAlign="right">
       <mx:Button label="{model.getButtonLabel(AbstractWizardModel.GO_BACK)}" />
    </mx:HBox>
    

    常量(在AbstractWizardModel中)定义为:

    [Bindable]
    public class AbstractWizardModel extends EventDispatcher
    {
       public static const GO_BACK : String = "goBack";
       ...
    }
    

    用“go back”替换“abstractwizardmodel.go back”是个技巧,但问题是什么?

    谢谢!

    PS:当然,我要在MXML代码中导入AbstractWizardModel。

    2 回复  |  直到 15 年前
        1
  •  0
  •   Markus Johnsson    15 年前

    这个错误是关于类abstractwizardmodel的,而不是关于常量返回的。您需要为MXML文件中的类有一个import语句:

    <mx:Script>
    <![CDATA[
    import the.package.AbstractWizardModel;
    ]]>
    </mx:Script>
    

    在你能使用这门课之前。 编辑:将“the.package.”替换为类所在的任何包。

        2
  •  0
  •   Thomas Auinger    15 年前

    哦,伙计,这太奇怪了……

    我找到了一种解决方案,感谢所有的评论,这帮助我走上了正确的道路,但仍然认为这是flex中的一个缺陷。

    首先,我必须添加(在我的代码中)MXML和AbstractWizardModel类在 同一包装 .

    我调用的“getButtonLabel()”函数声明为

    [Bindable(event="getButtonLabelChanged")]
    public function getButtonLabel (buttonId:String) : String
    {
        ..
    }
    

    如果我删除那个[bindable..]注释,代码就会编译。

    如果我把它留在那里,我必须为类abstractwizardmodel添加一个导入,尽管它在同一个包中。总之,这也解决了问题。

    但是:)FB4每次组织导入时都会删除该导入,因此用户注释也很有用。

    很高兴听到你的想法!

    推荐文章