La longueur d'une chaîne de caractères en pixels

Je suis remplissage d'une dropDownList avec type arraycollection de chaînes de caractères. Je veux que la largeur de la liste de contrôle pour correspondre à la taille (en pixels) de la chaîne la plus longue dans le tableau de la collection. Le problème que je me pose est: la largeur de police des chaînes dans la collection sont différents, par exemple " W " semble plus large que 'l'. J'ai donc estimé la largeur d'un caractère à 8 pixels, mais ce n'est pas assez soignée. Si une chaîne qui a beaucoup de 'W' et 'M' est rencontré l'estimation est fausse. Donc, je veux précis de la largeur en pixels de chaînes. Comment puis-je obtenir la longueur exacte d'une chaîne de caractères en pixels??

Ma solution que les estimations de caractère de 8 pixels de large est donnée ci-dessous:

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

Toute idée ou la solution est très appréciée.

Grâce

OriginalL'auteur Rose | 2011-01-07