2

私は少し奇妙なことに遭遇していますが、おそらく他の誰かが以前にこれに遭遇しました。

私は基本クラスを持っていますが、それは何も拡張しません。それを呼びましょう...

public class FooBar {
    //...
}

しかし、私はその公開されたプロパティのすべてをバインドしたいと思います:

[Bindable] public class FooBar {
    public var propertyOne:String;
    public var propertyTwo:String;
}

クラスのデバッグ/プロファイリング中に、プロパティが変更されるたびに、FooBarのインスタンスが.dispatchEvent() 」を呼び出していることに気づきました。しかし、私のクラスはEventDispatcherを拡張していません。

何が得られますか?

これは、コンパイル時に、私のクラスがEventDispatcherまたはイベントをディスパッチする機能を備えた他のクラスを自動的に拡張することを意味しますか?クラスに「 addEventListener」メソッドが宣言されていない場合、どうすればPropertyChangeEventをリッスンできますか?

4

1 に答える 1

3

メタデータを使用すると[Bindable]、Flexコンパイラは多くのコードを生成します。何が起こっているのかを正確に知りたい場合は、Flex[Bindable]タグの機能の答えを見てください。そこに掲載されているリンク。

あなたの質問に答えるために:いいえ、あなたのクラスは拡張されませんEventDispatcher。ただし、コンパイラは、IEventDispatcherインターフェイスを実装するようにクラスを変更します。そのインターフェースの生成された実装は、のインスタンスを使用しますEventDispatcher

于 2011-09-29T19:14:46.753 に答える