Flex 3 Checkbox Labelposition
Neulich stand ich vor dem Problem, dass das Checkbox-Label nach einer Änderung der Checkbox-Grafik vertikal falsch positioniert wurde.
Leider ist per css nicht vorgesehen eine vertikale Ausrichtung anzupassen. PaddingTop beeinflusst die ganze Checkbox und das brachte mich nicht weiter.
Aus diesem Grund habe ich mir folgende Lösung überlegt.
Als erstes leitet man von Checkbox ab und bereitet die Anpassung des Labels vor. Damit das Ganze etwas dynamischer wird, habe ich es einem css-style zugewiesen.
/**
* @author Christian Müller
* @date 01.11.2010
* @url http://www.christian-mueller-design.de
*/
override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void {
super.updateDisplayList( unscaledWidth, unscaledHeight );
setTextPositon();
}
private function setTextPositon():void {
var textPaddingTop : Number = isNaN( getStyle("textPaddingTop")as Number ) ? 0 : getStyle("textPaddingTop") as Number; // fetch value from current style
textField.y = textPaddingTop;
}
Wenn man damit fertig ist, braucht man dem css-style der Checkbox nur noch folgenden Parameter hinzufügen:
CheckBox.ExampleCheckbox
{
color: #FFFFFF;
textPaddingTop: 5;
}