Christian Mueller

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;
}

Flex 3 ApplicationUpdaterUI Labels ändern

Es kann vorkommen, dass man per code die Labels der ApplicationUpdaterUI-Komponente ändern möchte. Ich habe einige Seiten dazu gefunden, aber ohne hilfreiche Informationen.

Hier ein einfacher Weg:

/**
 * @author Christian Müller
 * @date 02.11.2010
 * @url http://www.christian-mueller-design.de
 */
var updater : ApplicationUpdaterUI = new ApplicationUpdaterUI();
updater.configurationFile          = "conf.xml";

// bestehendes resourcebundle laden und anpassen
// wichtig ist das bundle "ApplicationUpdaterDialogs"
var resBundle : ResourceBundle     = ResourceBundle( ResourceManager.getInstance().getResourceBundle( String( ResourceManager.getInstance().localeChain ), "ApplicationUpdaterDialogs" ) );
if (!resBundle) {
 resBundle = new ResourceBundle( String( ResourceManager.getInstance().localeChain ), "ApplicationUpdaterDialogs");
}
resBundle.content["titleWindow"] = "Aktualisiere:";
resBundle.content["titleUpdate"] = "Update verfügbar";
[..]
// neues resourcebundle zuweisen
ResourceManager.getInstance().addResourceBundle( resBundle );
ResourceManager.getInstance().update();
updater.checkNow();

weitere Information in der Flex Dokumentation: http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/air/update/ApplicationUpdaterUI.html

Twitter

  • Good overview RT @yeebase_t3n: HTML5 Video: 18 Player für Websites und Blogs
    http://t.co/IYHXiwCe
    2012/02/23 10:53
  • Language Tools -
    http://t.co/2lNrKU5S
    2012/02/22 23:06
  • Laut #amazon health board sollten alle #services wieder ohne Probleme laufen #aws #ec2 #s3 #rds
    http://t.co/UYRTFzwX
    2012/02/20 23:35
  • #amazon hat aktuell Probleme mit ihrem #elasticache und den #rds Datenbanken #aws #ec2
    http://t.co/UYRTFzwX
    2012/02/20 23:51
  • Tried to setup my #Flex project in #FB 4.6 and cannot override classes from external library anymore #fail #as3
    http://t.co/70AcEpRQ
    2012/02/16 10:57