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

时间:2009-11-04 11:08:10

标签: flex mxml

由于一些Flex / 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";
   ...
}

用'“goBack”替换'AbstractWizardModel.GO_BACK'可以解决问题,但问题是什么?

谢谢!

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

2 个答案:

答案 0 :(得分:0)

错误是关于AbstractWizardModel类,而不是常量GO_BACK。您需要在mxml文件中为该类创建一个import语句:

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

才能使用该课程。 编辑:替换“the.package”。无论班级所在的任何包裹。

答案 1 :(得分:0)

噢,这太奇怪了。

我找到了一种解决方案,感谢所有评论,这有助于我走上正轨,但仍然认为这是Flex中的一个错误。

首先,我必须添加(在我的代码中)MXML和AbstractWizardModel类位于相同的包中。

我正在调用的'getButtonLabel()'函数声明为

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

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

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

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

很高兴听到你的想法!