Apache flex “最好的方法是什么?”;“听”;在二传手上?
我希望在setter调用之后调用一个自定义函数。你有什么想法吗? 在具有属性的变量上使用ObjectProxy\u CHANGE listener是唯一的方法吗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
谢谢从类中扩展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之间的界线很粗,所以也许它仍然会对某些人有所帮助。