Actionscript 3 使用ActionScript进行绑定

Actionscript 3 使用ActionScript进行绑定,actionscript-3,apache-flex,flex3,Actionscript 3,Apache Flex,Flex3,我定制了一个属性为x的textinput控件。在我的节目里我 将控件实例化为vtiA。我的程序有一个名为_y的可绑定变量 我希望每次_y被我的程序更改时,属性x 控制vtiA反映新值 我所做的不起作用的是 [Bindable] private var _y; private function whocares():void { var vtiA:MyTextInput = new MyTextInput; vtiA.x = _y } 如果这是mxml,我只能说 <xx:MyTextIn

我定制了一个属性为x的textinput控件。在我的节目里我 将控件实例化为vtiA。我的程序有一个名为_y的可绑定变量

我希望每次_y被我的程序更改时,属性x 控制vtiA反映新值

我所做的不起作用的是

[Bindable] private var _y;

private function whocares():void
{
var vtiA:MyTextInput = new MyTextInput;
vtiA.x = _y
}
如果这是mxml,我只能说

<xx:MyTextInput id="vtiA" x="{_y}"/>

as3中的等价物是什么


Paul只对公共财产有效。因此,您需要:

[Bindable] public var _y;

我的理解是,(我广泛使用)它也可以用于私有变量。它是这样记录的;“在将公共、受保护或私有属性定义为变量以使特定属性支持绑定之前。”在中发现,我刚刚使用mxml进行了测试,它工作正常。正如您可能想象的那样,我的程序相当复杂,textinput组件有超过2200行代码,而访问textinput组件的模块有大约2400行代码。发布所有代码是不现实的。我看到了如何使用BindingUtils绑定更复杂的对象,而不是像string这样的简单对象。顺便说一句,我尝试了BindingUtils.bindProperty(vtiA,“x”,this,“_y”);这似乎对我不起作用。它识别了_y,因为我需要将其更改为公共变量。