“@”有啥作用?

Posted

技术标签:

【中文标题】“@”有啥作用?【英文标题】:What does the "@" do?“@”有什么作用? 【发布时间】:2011-12-30 18:28:23 【问题描述】:

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

text="@myVar"

那个@是做什么的?

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

【问题讨论】:

【参考方案1】:

@ 符号用于双向绑定。传统绑定只是一种方式。所以,你在 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 " />

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

【讨论】:

哇,我不知道这会存在! 这是 Flex 4 的新功能。

以上是关于“@”有啥作用?的主要内容,如果未能解决你的问题,请参考以下文章

函数的作用域和类的作用域有啥区别

BluetoothGatt.setCharacteristicNotification() 有啥作用?

并联电阻有啥作用

“@”有啥作用?

分号有啥作用?

.pack() 有啥作用?