Длина строки в пикселях

Я заполняю dropDownList набором строк arrayCollection. Я хочу, чтобы ширина раскрывающегося списка соответствовала размеру (в пикселях) самой длинной строки в коллекции массива. Проблема, с которой я столкнулся, заключается в следующем: ширина шрифта строк в коллекции отличается, например, «W» выглядит шире, чем «l». Поэтому я оценил ширину символа в 8 пикселей, но это не очень удобно. Если встречается строка, в которой много «W» и «M», оценка неверна. Поэтому мне нужна точная ширина строк в пикселях. Как я могу получить точную длину строки в пикселях?

Мое решение, оценивающее ширину всех символов как 8 пикселей, приведено ниже:

public function populateDropDownList():void{
    var array:Array = new Array("o","two","three four five six seven eight wwww");
    var sampleArrayCollection:ArrayCollection = new ArrayCollection(array);
    var customDropDownList:DropDownList = new DropDownList();
    customDropDownList.dataProvider=sampleArrayCollection;
    customDropDownList.prompt="Select ...";
    customDropDownList.labelField="Answer Options:";
    //calculating the max width
    var componentWidth=10; //default
    for each(var answerText in array){
     Alert.show("Txt size: "+ answerText.length + " pixels: " + answerText.length*9); 
     if(answerText.length * 8 > componentWidth){
      componentWidth=answerText.length * 8;
     }
    }
    customDropDownList.width=componentWidth;
    answers.addChild(customDropDownList);
   }

Любая идея или решение высоко ценится.

Спасибо

8
задан scunliffe 7 January 2011 в 17:30
поделиться