【发布时间】:2011-12-30 18:28:23
【问题描述】:
有时我会在我正在工作的项目中看到以下内容:
text="@{myVar}"
那个@是做什么的?
编辑:文本是一个属性,例如,TextArea 组件。
【问题讨论】:
标签: actionscript-3 apache-flex flash-builder
有时我会在我正在工作的项目中看到以下内容:
text="@{myVar}"
那个@是做什么的?
编辑:文本是一个属性,例如,TextArea 组件。
【问题讨论】:
标签: actionscript-3 apache-flex flash-builder
@ 符号用于双向绑定。传统绑定只是一种方式。所以,你在 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)。
当您添加“@”时,它会创建一个双向绑定:
<s:TextInput id="myInput" text="@{myValue}" />
所以,现在每当 myValue 改变时,TextInput 的 text 属性就会改变。 (如上一个示例)。 每当 myInput.text 发生变化时,myValue 也会发生变化(与上一个示例不同)。
基本上,'@' 使值(myValue 和 myInput.text)成为绑定的源和目标。
您可以通过使用Binding 标签来完成同样的事情,而无需“@”:
<fx:Binding source="myInput.text" destination="myValue " />
这对你来说是更深入的解释吗?
【讨论】: