Apache flex 查看可绑定属性
在我的flex应用程序中,我有一个公共可绑定属性。 我希望这样,每当该属性的值改变时,就会触发一个函数。 我尝试使用ChangeWatchers,但似乎这些只适用于内置组件,如文本框更改。Apache flex 查看可绑定属性,apache-flex,actionscript-3,mxml,Apache Flex,Actionscript 3,Mxml,在我的flex应用程序中,我有一个公共可绑定属性。 我希望这样,每当该属性的值改变时,就会触发一个函数。 我尝试使用ChangeWatchers,但似乎这些只适用于内置组件,如文本框更改。 我希望对运行时更改的属性执行相同的操作。好吧,最简单的方法是收听PropertyChangeEvent.property\u CHANGE。。。如果您声明了一个可绑定的属性,那么mxmlc将生成代码来分派此事件。。。如果让编译器保留生成的ActionScript,那么您将看到它 除此之外,您可能还想看看Bin
我希望对运行时更改的属性执行相同的操作。好吧,最简单的方法是收听
PropertyChangeEvent.property\u CHANGE
。。。如果您声明了一个可绑定的属性,那么mxmlc将生成代码来分派此事件。。。如果让编译器保留生成的ActionScript,那么您将看到它
除此之外,您可能还想看看
BindingUtils
…看看back2dos建议的BindingUtils类
此外,您还可以设置更改属性(默认值为propertyChange)时将触发的事件的名称,如下所示:
[Bindable("change")]
var myProperty : SomeClass;
也就是说,如果ChangeWatchers为change事件而不是propertyChange事件添加侦听器。这会有点奇怪,但也不是不可能,因为flex SDK的所有故障
不过,我还是认为BindUtils类应该为您提供帮助。一个选项是使用
BindingUtils.bindSetter
(附带返回一个ChangeWatcher):
在这里,每当
myValue
属性更改时,就会调用myValueChanged
。当然,还有其他的方法,但我经常使用这种方法,效果很好。希望有帮助!发回问题,我会密切关注。使用类ObjectProxy或其子类,并包装具有需要监视的属性的类。在我的示例中,如果有人在对象Person中更改属性salary,使其值超过55000,我将调用func:
包com.farata
{
导入mx.utils.ObjectProxy;
导入flash.utils。*
使用名称空间flash_代理
public dynamic class MyPersonProxy extends ObjectProxy
{
// The object to wrap up
private var person:Person;
public function MyPersonProxy(item:Person){
super(item);
person=item;
}
flash_proxy override function setProperty(name:*, value:*):void {
如果(姓名==‘工资’&&value>55000){
//将新属性添加到此的实例
//类人员,可用于计算
//赔偿总额的
setProperty(“养老金”,0.02);
}
super.setProperty(名称、值);} } }
public dynamic class MyPersonProxy extends ObjectProxy
{
// The object to wrap up
private var person:Person;
public function MyPersonProxy(item:Person){
super(item);
person=item;
}
flash_proxy override function setProperty(name:*, value:*):void {