クイックや汚れ
あなたは、任意のコンポーネントのスキンにアクセスするだけで直接その状態を設定することができます。
subMenu.btnDashboard.skin.currentState = "disabled";
しかし行うには非常にきれいな方法ではないことそれ。スキンクラスに何をすべきかを直接伝え、ホストコンポーネントを完全にバイパスします。したがって、ホストコンポーネントは、そのスキンに加えられた変更を知らない。
適切な方法
これにアプローチするクリーンな方法は、ホストコンポーネントのプロパティを公開し、その後getCurrentSkinState()
メソッドをオーバーライドすることで可能な変化に自分自身を調整するために皮膚を伝えることです。
たとえば、 'enabled'プロパティを作成し、 'enabled'が設定されている場合は、invalidateSkinState()
を呼び出してスキンに状態を更新するように指示できます。
public function set enabled(value:Boolean):void {
_enabled = value;
invalidateSkinState();
}
invalidateSkinState()
を呼び出すと、次の描画サイクルで肌のコールgetCurrentSkinState()
を行います。
override protected function getCurrentSkinState():String {
return _enabled ? "normal" : "disabled";
}
ので、あなたはボタン(またはそのサブクラス)をスキニングしていることに注意してください、私がここに書いてきたことすべてが、すでにそのコンポーネントに焼きされます。このメソッドは、このようになります。ただtrue
に 『有効』プロパティを設定する」
subMenu.btnDashboard.enabled = true;
あなたはコンポーネントボックスの右にあるButtonコンポーネントはないボタンのシンボルタイプの話をしている – annonymously