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 - Fatal编程技术网

Apache flex “最好的方法是什么?”;“听”;在二传手上?

Apache flex “最好的方法是什么?”;“听”;在二传手上?,apache-flex,actionscript-3,Apache Flex,Actionscript 3,我希望在setter调用之后调用一个自定义函数。你有什么想法吗? 在具有属性的变量上使用ObjectProxy\u CHANGE listener是唯一的方法吗 谢谢从类中扩展EventDispatcher,然后在set方法中简单地分派一个事件 class MyClass extends EventDispatcher { public static const PROPERTY_CHANGED:String = "PROPERTY_CHANGED"; private _foo

我希望在setter调用之后调用一个自定义函数。你有什么想法吗? 在具有属性的变量上使用ObjectProxy\u CHANGE listener是唯一的方法吗


谢谢

从类中扩展EventDispatcher,然后在set方法中简单地分派一个事件

class MyClass extends EventDispatcher {
    public static const PROPERTY_CHANGED:String = "PROPERTY_CHANGED";

    private _foo:Number = 0;

    public function MyClass() { }

    // else where
    public function set foo(value:Number):void {
        _foo = value;
        dispatchEvent(new Event(PROPERTY_CHANGED));
    }


}

实际上,我更喜欢一种更具声明性和简洁性的机制:

[Bindable]
public class MyClass
{
    public var foo:Number;

    public function MyClass() {
        BindingUtils.bindSetter(whenFooIsSet, this, "foo");
    }

    private function whenFooIsSet(newValue:Number) {
    }
}

setter是您创建的类的一部分,还是现有类的一部分?setter是我创建的类的一部分。为什么不在setter函数中调用该函数?!我不明白你的问题。。。一些代码可能会有所帮助。在我即将提交我的答案时,刚刚发布了你的答案;)@歌利亚通-对不起,伙计!我讨厌发生这种情况,很遗憾你不能将声誉与问题分开。不过,你最好使用正确的事件:。请注意,只有在开发flex应用程序时,这才有效。另外,为了清楚起见,[Bindable]默认值为=[Bindalbe(event=“propertyChange”)]:@Stephen Bailey:同意,这只适用于Flex。。。但是这个问题被贴上了Flex标签。啊,是的,脸红。对于浏览网页的新开发人员来说,由于他们使用FlexSDK,纯AS3和flex之间的界线很粗,所以也许它仍然会对某些人有所帮助。