“@”做什么?

时间:2011-11-16 20:01:55

标签: actionscript-3 flex flash-builder

有时我会在我正在工作的项目中看到以下内容:

text="@{myVar}"

@做什么?

编辑:text是一个属性,例如TextArea组件。

1 个答案:

答案 0 :(得分:23)

@符号用于双向绑定。传统绑定只是一种方式。所以,你在ActionScript中有这样的东西:

[Bindable]
public var myValue:String = 'test';

这在MXML中

<s:TextInput id="myInput" text="{myValue}" />

myValue是源,myInput上的text属性是目标。

当myValue变量更改时,TextInput的text属性将更改。但是,如果输入myInput; myValue的值不会改变。

这是单向绑定。更改源(myValue)会更改目标(myInput.text),但更改目标(myInput.text)不会更改源(myValue)。

当您添加&#39; @&#39;它创建了双向绑定:

 <s:TextInput id="myInput" text="@{myValue}" />

所以,现在每当myValue改变时,TextInput的text属性都会改变。 (如上例所示)。 每当myInput.text发生变化时,myValue也会发生变化(与前一个样本不同)。

&#39; @&#39;,基本上,使值(myValue和myInput.text)成为绑定的源和目标。

如果没有&#39; @&#39;你可以完成同样的事情。使用Binding标记:

<fx:Binding source="myInput.text" destination="myValue " />

这对你来说是一个更深入的解释吗?