Textbreite in ActionScript und Flex berechnen
Ich versuche zu berechnen, wie WEIT um meine Taste, basierend auf dem text, den Sie enthalten soll, und wenn ich versuche google, wie calcuate etwas so simpel, wie die BREITE VON EINIGEN TEXT, den ich schielen nur versuchen zu waten durch scheinbar unsinnige esoterische counter-intuitive voodoo. Kann jemand da draußen helfen, vereinfachen für mich, wie ich eine Funktion schreiben wie dieses:
public function HowWideWouldThisTextBeIfItWereInThisButton(Text:String,Container:Button):int {
...
}
Vielen Dank im Voraus.
InformationsquelleAutor der Frage Joshua | 2010-05-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
So lange, wie Sie sind in eine UIComponent, die Sie verwenden können, die measureText Funktion.
Dass gesagt wird, der flex-button-Komponente sollte die Größe automatisch an die Breite des Textes, wenn Sie keine Breite festlegen. So, wenn Sie die Breite des Textes, Sie können einfach anrufen, verwenden Sie die textWidth-Eigenschaft.
InformationsquelleAutor der Antwort quoo
Diese Werke jedem format, Größe, schriftart. Vergessen Sie nicht die Eigenschaften, die "autoSize" und "wordWrap"!
Ihre Taste "tf.Breite" breit...
InformationsquelleAutor der Antwort Simmoniz
Hier , wie man es in der Funke:
Habe ich geändert - vereinfacht - diesem Beispiel ein bisschen hier:
InformationsquelleAutor der Antwort Thomas Brady
Hier ist ein Weg, der funktioniert auch:
InformationsquelleAutor der Antwort Bly
als ich denke,
textField.textWidth
Konstruktion funktioniert... bis Sie die Schriftgröße ändern.Es scheint, berechnet er die Breite auf 12px font.
Also, wenn Sie eine eingebettete schriftart und global styling können Sie versuchen, eine schnelle Lösung:
Ich habe versucht, diese auf langen und kurzen Saiten und das Ergebnis ist richtig.
InformationsquelleAutor der Antwort effrit
Joshua, es hilft wirklich klar zu sein. Sprechen Sie TextField -, MX-Label, Spark Label, RichText, etc? Verschiedene text-Komponenten verwenden verschiedene text-engines, wie FTE und TLF und kann mit anderen Lösungen. Ich Wünsche Adobe hatte einen guten Satz von utilities und code-Beispiele, die Vorhersagen könnten, was die Größe der schriftart gerendert auf, die Kontrollen wäre, bevor Sie es tatsächlich tun. Aber die gute Nachricht ist, dass in bestimmten Fällen - wie eine gute alte altmodischen TextField, können Sie Vorhersagen ziemlich gut. Sie machen gerade ein TextField, setzen Sie den textFormat-Bereich, auto-size-Methode und die text. Sie sollten in der Lage sein zu erhalten es ist die Größe, bevor Sie es überall. Ich erinnere mich nicht, was der Orden war, aber ich erinnere mich an die Reihenfolge, die Sie festlegen dieser Eigenschaften Fragen. Wenn Sie nicht herausfinden können, wie Sie es tun, kann ich ein code Beispiel. Nun, für die neuen, "verbesserten" Komponenten wie Funke Labels - ich werde belästigt, wenn ich einen verdammten Weg... verbrachte einige Stunden auf diese und nicht einen Weg gefunden.. oder jemand kennt einen Weg :P.
InformationsquelleAutor der Antwort Cyrus Amiri
Folgenden bis mein Kommentar auf quoo's Antwort, hier der code für den gleichen Zweck, ist aber nur greifen die Breite aus einem
TextField
mit TextLineMetrics:InformationsquelleAutor der Antwort cregox
Klingt wie Sie könnte zu nutzen textWidth
InformationsquelleAutor der Antwort Lars Blåsjö