@ 符号用于双向绑定。传统绑定只是一种方式。所以,你在 ActionScript 中有这样的东西:
[Bindable]
public var myValue:String = 'test';
这在 MXML 中
<s:TextInput id="myInput" text="{myValue}" />
myValue 是源,myInput 上的文本属性是目标。
当 myValue 变量更改时,TextInput 的文本属性也会更改。但是,如果您在 myInput 中输入; myValue 的值不会改变。
这是一种单向绑定。更改源 (myValue) 会更改目标 (myInput.text),但更改目标 (myInput.text) 不会更改源 (myValue)。
当您添加“@”时,它会创建一个双向绑定:
<s:TextInput id="myInput" text="@{myValue}" />
因此,现在只要 myValue 发生变化,TextInput 的文本属性就会发生变化。 (如前面的示例)。
每当 myInput.text 更改时,myValue 也会更改(与之前的示例不同)。
基本上,“@”使值(myValue 和 myInput.text)成为绑定的源和目标。
您可以使用以下命令在没有“@”的情况下完成同样的事情Binding http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/mxml/binding.html tag:
<fx:Binding source="myInput.text" destination="myValue " />
这对你来说是更深入的解释吗?