绑定mxml(as)

时间:2010-08-30 16:57:28

标签: flex actionscript-3 data-binding mxml

我有一个带有绑定{someBinding} ...

的actionscript文件

Main.mxml是所有操作发生的地方。如果我在标签组件的“text”中设置{someBinding},我将有一个数字。

我有另一个form.mxml文件。我希望那个绑定在哪里,但它找不到这样的绑定。

我需要在其他mxml中使用{someBinding},与Main.mxml中的方法相同

谢谢,Yan

2 个答案:

答案 0 :(得分:1)

您不能以一种您想要的方式将一个组件(或文件)中的值作为另一个组件(或文件)中的值。您必须将这些相关值公开为属性并设置值。

这种方法应该有效:

首先将属性添加到组件2并使其成为Bindable。在脚本块中执行此操作,如下所示:

[Bindable] public var hBoxWidth : int;

然后将其绑定到同一组件的MXML中,如下所示:

<mx:HBox width="{this.hBoxWidth}" />

现在一些组件将包含这一个:

<mx:HBox>
  <myCustomComp:customHBox hBoxWidth={this.othervalue} />
</mx:Hbox>

因此,当othervalue更改时,它将更改customHBox组件上的hBoxWidth值,该值将依次更改customHBox内HBox上的width属性。

这有意义吗?

答案 1 :(得分:0)

您可以创建绑定,但必须使用ActionScript,并且需要在main.mxml中引用form.mxml文件(反之亦然)。

这应该可以让您了解它的工作原理。看一下BindingUtils的语法。 bindProperty方法。 BindingUtils代码的使用将在main.mxml中。

BindingUtils.bindProperty(otherForm.someOtherTextComponent, "text", this.someTextComponent, "text");