Länge eines Strings in Pixel

Ich bin das Auffüllen einer dropDownList mit arrayCollection von strings. Ich möchte die Breite der Dropdown-Liste-Steuerelement in übereinstimmung mit der Größe (in Pixel) des längsten Strings im array Sammlung. Das problem, das ich bin vor ist: die schriftart, die Breite des strings in der Sammlung sind verschiedene, z.B. " W " sieht breiter als 'l'. So habe ich geschätzt, dass die Breite eines Zeichens von 8 Pixel, aber das ist nicht das, Recht ordentlich. Wenn Sie eine Zeichenfolge, die hat viele 'W' und 'M' hat die Schätzung falsch ist. Also ich möchte die genaue Pixelbreite des strings. Wie bekomme ich die exakte Länge eines Strings in Pixel??

Meine Lösung, die Schätzungen alle Zeichen werden 8 Pixel breit ist unten angegeben:

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

Jede Idee oder Lösung sehr geschätzt.

Dank

InformationsquelleAutor Rose | 2011-01-07
Schreibe einen Kommentar