いくつかのコンポーネントで共有されている XML オブジェクトがあります。BindSetter を特定のタグに設定し、そのプロパティが変更された場合に関数を呼び出すことはできますか?
試してみましたが、BindSetter 呼び出しは XML タグ名を受け入れないようです。
単純に [Bindable] を使用し、MXML でタグ名 (つまり、label text="{myXMLObject.tagName}") を使用する場合、これは正常に機能するため、これは純粋な AS でも機能する必要があると考えています。どのように。
ヒントはありますか?
コメント/回答に基づいて、これが私のコード/使用法の非常に基本的な例です。
Flex アプリの 2 つのコンポーネントは、どちらも同じ XML オブジェクトを継承します。
[Bindable] public var sharedData:XML;
次に、すべてのコンポーネントの creationComplete ハンドラーで、BindSetter
;を呼び出します。
BindingUtils.bindSetter(sharedDataChange, sharedData, "tagName");
sharedDataChange
この時点では何もせず、関数が呼び出されたことをトレースするだけです。
次に、 の値を表示する Label sharedData.tagName
、 textInput 、および を設定するボタンを取得しましたsharedData.tagName = textInput.text
。MXML バインディング ( {label.text = sharedData.tagName}
) を使用すると、これは正常に機能します。しかし、私が言ったように、BindSetter 関数は変更を検出していないようです。