Wie abschneiden von text mit Auslassungszeichen (...) in der flex?
In meinem flex-app, ich habe eine <mx:Text>
Steuerung mit einer festen Höhe und Breite genug ist, um zwei Linien. Nun, wenn der text zu lang ist, um Sie in zwei Zeilen, ich würde gerne haben es abgeschnitten, mit dem zeigen Auslassungszeichen (...). Die Standard-abschneiden mit Auslassungszeichen vorhanden zu sein scheint, mit label, aber das label nicht show text in zwei Zeilen.
Wie kann ich dieses Verhalten nachzuahmen und in <mx:Text>
Steuerung in flex? Vielen Dank im Voraus!!!
Öffnen Sie den label-code, den code zu kürzen Sie den text, und verwenden Sie dann den gleichen Ansatz in einer Klasse, die Sie erweitert Text.
InformationsquelleAutor Goje87 | 2010-11-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den
spark.components.Label
Komponente erbt diemaxDisplayedLines
Eigenschaft vonspark.components.supportClasses.TextBase
. Hier ist die Hilfe für die jeweilige Eigenschaft:Daraus können wir sehen, dass wenn Sie die maxDisplayedLines-Eigenschaft auf -1, die Komponente wird angezeigt, wie viel text, wie Sie können, und fügen Sie die "..." wenn es zu kürzen Sie den text.
InformationsquelleAutor BTSmith
So kommt es, dass die Text-Klasse in Flex 3 ist eine Unterklasse von Label. Was bedeutet die Einstellung "truncateToFit" - Eigenschaft auf Ihre Text-Steuerelements auf true fest genug sein sollte.
InformationsquelleAutor bug-a-lot
Die beste Lösung, die ich gefunden habe, ist über das spark Label und die maxDisplayedLines-Eigenschaft, etwa so:
Funktionierte perfekt für mich.
Im Allgemeinen fand ich die spark Label besser sein als die mx-Label, aber YMMV.
InformationsquelleAutor Task
Ich weiß, dies ist eine alte post, aber viele Menschen noch in der Entwicklung und Aufrechterhaltung gemischt Spark/MX-Projekte. Also ich gebe meine zwei Cent für Leute, die noch vor diesem problem, speziell bei der Verwendung von MX-Listen und datagrids und in der Notwendigkeit einer multiline-das abschneiden in den renderer.
Soweit ich das beurteilen kann, ist die Frage zu MX-Komponenten, der Verwendung von Spark-wäre eine gute Wahl sein, aber nur wenn möglich.
So, in Fall ein "s:Label" ist nicht eine Wahl, ich würde denken, dass der beste Ansatz ist die Erweiterung der MX-Label-Komponente, und legen Sie seine textField-die multiline-Eigenschaft auf true. Das sollte den trick tun, ich würde zunächst versuchen, das hinzufügen, dass die Logik in der überschreibung der Methode updateDisplayList.
InformationsquelleAutor Victor Lira
Habe ich einen blog-post zu diesem Thema hier, das funktioniert gut, unabhängig von der version von Flex, die Sie verwenden:
http://www.tjdownes.com/post.cfm/easy-string-truncation-with-ellipsis-using-ternary-operators-in-as3
Den kurzen ist es so:
myString.slice(0, 150).concat(myString.Länge > 150 ? "..." : "");
Diese wird, kürzen Sie die Zeichenfolge zu 150 Zeichen und, wenn die Zeichenfolge länger als 150 Zeichen fügt eine Ellipse.
InformationsquelleAutor TJ Downes
Auf flex 4, die Sie benötigen, um die
Label#maxDisplayedLines
auf etwas über 0 und es wird das clipping für Sie.Sehen diese, um zu sehen, wie Sie die "..."
InformationsquelleAutor Dan
spark-Komponente Hat die trancion propert:@see.
http://blog.flexexamples.com/2009/06/15/determining-if-a-spark-simpletext-control-is-truncated-in-flex-4/
InformationsquelleAutor user1495110