actionscript3 で、オブジェクトのプロパティが更新されるたびにリッスンできるイベントはありますか?
Flex イベント オブジェクトを扱っているPropertyChangeEventを見つけました。私は Flex と、アプリケーションがそのコンポーネントを使用することが何を意味するかについてよく知りません。私のアプリケーションはactionscript3で厳密に書かれています。
update actionscript-2 - Object.watchにそのようなものがあったようです
actionscript3 で、オブジェクトのプロパティが更新されるたびにリッスンできるイベントはありますか?
Flex イベント オブジェクトを扱っているPropertyChangeEventを見つけました。私は Flex と、アプリケーションがそのコンポーネントを使用することが何を意味するかについてよく知りません。私のアプリケーションはactionscript3で厳密に書かれています。
update actionscript-2 - Object.watchにそのようなものがあったようです
actionscript3 で、オブジェクトのプロパティが更新されるたびにリッスンできるイベントはありますか?
いいえ、または少なくともデフォルトではありません!
Flex では、オブジェクトのカスタム プロパティは get/set メソッドで実装され、set メソッドはプロパティ変更イベントを送出します。このようなもの:
private var _myVar : SomeClass;
public function get myVar():SomeClass{
return _myVar;
}
public function set myVar(value:SomeClass):void{
_myVar = value;
dispatchEvent(new Event('myVarChanged'));
}
これは主に Flex Framework でのバインディングに使用され、これらの「propertyChanged」イベントのほとんどは文書化されていません。時々、それらは役に立ちます。
Flex 以外のコード。プロパティをまったく同じ方法で書くことは大歓迎です。デフォルトの Flash クラスが「propertyChanged」イベントをディスパッチするとは思いません。
Actionscript 3.0 リファレンスによると ( http://help.adobe.com/pt_BR/FlashPlatform/reference/actionscript/3/mx/binding/utils/BindingUtils.html#bindSetter() )
以下を使用できます。
BindingUtils.bindSetter(myFunctionHandler, entity, "property");
protected function myFunctionHandler(object:Object):void
{
// implementation
}