也许我昨晚睡眠不足,但我遇到了奇怪的Flex 3.4问题。
情景:
我有一个类,它为我的整个应用程序命名为“DataProvider.as”的数据提供者:
package
{
public class DataProvider
{
[Bindable]
public static var email_enable:Boolean = true;
}
}
在mxml表单中,“Settings.mxml”我有一个复选框控件,它绑定到我的dataprovider类的email_enable变量:
<mx:CheckBox x="452" y="170" label="{Language.loadLanguageResource('lblEmail')}"
id="chkEmail"
selected="{DataProvider.email_enable}"
change="onChange()"/>
只要获取值,一切都很好,如果我将数据提供者中的变量设置为true或false,则复选框会反映此更改;但是,如果我点击复选框并更改其值,则数据提供者变量永远不会反映更改!
我一直在撞墙而不能解决这个问题。我google了我的心无济于事。请救救我。
答案 0 :(得分:4)
这是因为Flex具有单向绑定,至少在3.x中; Flex 4将支持双向绑定。
您需要向CheckBox添加一个事件侦听器,并从侦听器修改该变量。
PS:你是对的,这实际上是我今天回答的最容易的问题;)