2012-01-12 28 views
0

は、だから私は、プロパティcurrentValueはを含めるようにカスタムトグルボタンを作成しましたcurrentValueの変更に基づいて変更されたトグルボタンの外観になります。 "currentValue"の変更に応じてスタイルを更新できるように、トグルボタンを毎回リフレッシュするにはどうすればよいですか?再描画/リフレッシュカスタムスキンは

P.S. MyToggleStyleはmxmlで記述されたスキンクラスを参照し、getStyle( "currentValue")を使用してcurrentValueへの変更を取得します

答えて

0

currentValueプロパティがスキングラフィックスにのみ影響し、あなたが状態を持つスキンを作成する必要があります。 (良い例のためspark.skins.spark.CheckBoxSkinを参照してください。)

をMyToggleButtonに:currentValue変更とFlexは自動的にあなたの肌の新しい状態を決定するためにgetCurrentSkinState()を呼び出すたび

public function set currentValue(value:int):void { 
    _currentValue = value; 
    invalidateSkinState(); 
} 

protected override function getCurrentSkinState():String { 
    return _currentValue == 9 ? "someStateName" : "otherState"; 
} 

これは、お肌の状態を無効にします。次に、includeIn、条件付きプロパティなどを使用して、その外観を決定することができます。

currentValueをお肌にお届けするためには、の皮膚のパーツを参照してください。これらは基本的にコンポーネントが定義するスロットで、スキンはラベルなどのコンポーネントで「塗りつぶす」。たとえば、標準スパーク・ボタンのラベルはlabelDisplayのスキン部品です。コンポーネントはこれに直接テキストを設定できますが、実際に作成するのはスキンに依存します。

P.S.あなたのコード例でcurrentValue[Bindable]も必要です。