Art*_*mix 6 apache-flex actionscript-3 flash-builder
有时我会在我正在工作的项目中看到以下内容:
text="@{myVar}"
Run Code Online (Sandbox Code Playgroud)
@做什么?
编辑:text是一个属性,例如TextArea组件.
Jef*_*ser 23
@符号用于双向绑定.传统绑定只是一种方式.所以,你在ActionScript中有这样的东西:
[Bindable]
public var myValue:String = 'test';
Run Code Online (Sandbox Code Playgroud)
这在MXML中
<s:TextInput id="myInput" text="{myValue}" />
Run Code Online (Sandbox Code Playgroud)
myValue是源,myInput上的text属性是目标.
当myValue变量更改时,TextInput的text属性将更改.但是,如果输入myInput; myValue的值不会改变.
这是单向绑定.更改源(myValue)会更改目标(myInput.text),但更改目标(myInput.text)不会更改源(myValue).
当你添加'@'时,它会创建一个双向绑定:
<s:TextInput id="myInput" text="@{myValue}" />
Run Code Online (Sandbox Code Playgroud)
所以,现在每当myValue改变时,TextInput的text属性都会改变.(如上例所示).每当myInput.text更改时,myValue也会更改(与上一个示例不同).
基本上,'@'使值(myValue和myInput.text)成为绑定的源和目标.
你可以使用Binding标签在没有'@'的情况下完成同样的事情:
<fx:Binding source="myInput.text" destination="myValue " />
Run Code Online (Sandbox Code Playgroud)
这对你来说是一个更深入的解释吗?