Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache flex 查看可绑定属性_Apache Flex_Actionscript 3_Mxml - Fatal编程技术网

Apache flex 查看可绑定属性

Apache flex 查看可绑定属性,apache-flex,actionscript-3,mxml,Apache Flex,Actionscript 3,Mxml,在我的flex应用程序中,我有一个公共可绑定属性。 我希望这样,每当该属性的值改变时,就会触发一个函数。 我尝试使用ChangeWatchers,但似乎这些只适用于内置组件,如文本框更改。 我希望对运行时更改的属性执行相同的操作。好吧,最简单的方法是收听PropertyChangeEvent.property\u CHANGE。。。如果您声明了一个可绑定的属性,那么mxmlc将生成代码来分派此事件。。。如果让编译器保留生成的ActionScript,那么您将看到它 除此之外,您可能还想看看Bin

在我的flex应用程序中,我有一个公共可绑定属性。 我希望这样,每当该属性的值改变时,就会触发一个函数。 我尝试使用ChangeWatchers,但似乎这些只适用于内置组件,如文本框更改。
我希望对运行时更改的属性执行相同的操作。

好吧,最简单的方法是收听
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 {