Если свойство currentValue
будет влиять только на графику обложки, и у вас есть несколько предопределенных «взглядов», то вы должны создать обложку с состояниями. (хороший пример см. spark.skins.spark.CheckBoxSkin
.)
в MyToggleButton:
public function set currentValue(value:int):void {
_currentValue = value;
invalidateSkinState();
}
protected override function getCurrentSkinState():String {
return _currentValue == 9 ? "someStateName" : "otherState";
}
Это приведет к аннулированию состояния вашей кожи при каждом изменении currentValue
, и Flex автоматически вызовет getCurrentSkinState()
, чтобы определить новое состояние вашей кожи. Затем вы можете использовать includeIn
, условные свойства и т. Д. В вашей коже, чтобы определить ее внешний вид.
Если вы хотите отобразить currentValue
в виде текста в вашем скине, вам следует рассмотреть части скина. Это в основном слоты, которые определяет ваш компонент, и затем оболочка «заполняется» таким компонентом, как этикетка. Например, метка на стандартной кнопке зажигания - это часть скина labelDisplay
. Компонент может установить текст непосредственно для этого, но его создание зависит от скина.
P.S. Вам также понадобится [Bindable]
на currentValue
в вашем примере кода.