ビュー (ボタン) に直接アクセスして操作しようとしないでください。代わりにモデル + データ バインディングを使用してください。
カスタムスキンを作成する
すでにこれを行っているように見えますが、参考までに: ButtonBar のカスタム スキンと、ButtonBarButtons の 3 つのスキンが必要です。
データプロバイダーにプレゼンテーション モデルを使用する
ボタンのラベル、おそらくアイコン、およびボタンに必要な追加情報を保持するプレゼンテーション モデルを作成します。例えば:
class ButtonModel {
public var label:String;
[Bindable]
public var messageCount:int = 0;
}
messageCount
後でバインドできるように、バインド可能にしたことに注意してください。
これらのモデルのコレクションを ButtonBar のデータプロバイダーとして割り当てます
<s:ButtonBar>
<s:ArrayList>
<rs:ButtonModel label="Button 1"/>
<rs:ButtonModel label="Button 2"/>
</s:ArrayList>
</s:ButtonBar>
カスタム スキンでプレゼンテーション プロパティを使用する
カスタム ボタン スキンで、このプレゼンテーション モデルのプロパティにバインドできるようになりました。ホスト コンポーネント (ButtonBarButton) には、data
このモデル インスタンスを保持するプロパティがあります。
<s:Label id="labelDisplay"/>
<s:Label text="{hostComponent.data.messageCount}"/>
モデルのプロパティを更新するmessageCount
と、自動的にボタンに反映されます。