on the layoutContents
function, before positioning the labelDisplay
element, i checked first whether it's numLines
property is greater than 1. here's my updated function:
override protected function layoutContents(unscaledWidth:Number, unscaledHeight:Number) : void {
labelDisplay.wordWrap = true;
labelDisplay.multiline = true;
labelWidth = width - paddingLeft - paddingRight;
labelHeight = height - paddingTop - paddingBottom;
var x:Number = width * .5 - labelWidth * .5;
var y:Number = height * .5 - getElementPreferredHeight(labelDisplay) * .5;
setElementSize(labelDisplay,labelWidth,labelHeight);
if (labelDisplay.numLines == 1)
setElementPosition(labelDisplay,x,y);
else
setElementPosition(labelDisplay, x, labelDisplay.getLayoutBoundsY());
}
this solution may not be useful to other devs out there but it solved my problem.