私はsetter呼び出しの後に呼び出されるカスタム関数が必要です。アイデアはありますか? PROPERTY_CHANGEリスナーを持つ変数のObjectProxyは唯一の方法ですか?セッターで "聴く"ための最善の方法は何ですか?
おかげ
私はsetter呼び出しの後に呼び出されるカスタム関数が必要です。アイデアはありますか? PROPERTY_CHANGEリスナーを持つ変数のObjectProxyは唯一の方法ですか?セッターで "聴く"ための最善の方法は何ですか?
おかげ
は、あなたのクラスからの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) {
}
}
これは、フレックスアプリケーションを開発している場合にのみ機能することに注意してください。また、[Bindable]はデフォルトで[Bindalbe(event = "propertyChange")]:http://livedocs.adobe.com/flex/3/html/help.html?content=databinding_8.html –
@Stephen Bailey:合意、これはFlexでのみ動作します...しかし、この質問はFlexでタグ付けされました。 –
Ahhはい*赤面*。新しいデベロッパーのために、純粋なAS3とフレックスの間の線を参照することは、FlexSDKを使用しているので大変です。だから、おそらく誰かを助けるでしょう。 –
は、作成したクラスの一部、または既存のクラスのセッターですか? – Chris
セッターは私が作成したクラスの一部です。 –
なぜsetter関数内の関数を呼び出さないのですか?私はあなたの問題を理解していません...いくつかのコードが役立つでしょう。 –