20 décembre 2009
AS3 : TextLineMetrics
TextLineMetrics ? En voilà une classe bien utile mais peu connue ! Un exemple par la pratique dans la suite.

La classe TextLineMetrics permet de récupérer les informations concernant un texte. Oui mais à quoi ça sert exactement me diriez vous ? Et bien prenons un cas concret.
Exemple
Tout le monde (ou tout bon développeur ActionScript) connait le moyen de récupérer la largeur et la hauteur d’un texte (au sein d’un textField), à l’aide des propriétés textWidth et textHeight.
var txt : TextField = new TextField(); txt.width = 200; txt.wordWrap = true; txt.multiline = true; txt.autoSize = TextFieldAutoSize.LEFT; txt.defaultTextFormat = new TextFormat("Arial", 12); txt.text = "Un texte assez long pour qu'il puisse passer sur deux voir trois lignes." addChild(txt); trace("Nombre de ligne : ", txt.numLines); trace("Largeur du texte : ", txt.textWidth); trace("Hauteur du texte : ", txt.textHeight);
En exécutant ce code on obtiendra les propriétés du texte au sein du textField :
Nombre de ligne : 3 Largeur du texte : 182 Hauteur du texte : 45
Et bien la Classe textLineMetrics vous permettra, elle, de récupérer les propriétés d’une ligne (ou portion de texte) particulière d’un texteField.
var txt : TextField = new TextField(); txt.width = 200; txt.wordWrap = true; txt.multiline = true; txt.autoSize = TextFieldAutoSize.LEFT; txt.defaultTextFormat = new TextFormat("Arial", 12); txt.text = "Un texte assez long pour qu'il puisse passer sur deux voir trois lignes." addChild(txt); for(var i : uint = 0; i < txt.numLines; i++) { var metrics : TextLineMetrics = txt.getLineMetrics(i); trace("Largeur de la ligne ", i, " : ", metrics.width); trace("Hauteur de la ligne ", i, " : ", metrics.height); trace("-------------------------------"); }
Ici on trace les propriétés de chaque lignes, et on constate donc que seule la deuxième ligne fait 182 pixels de large :
Largeur de la ligne 0 : 163 Hauteur de la ligne 0 : 15 ------------------------------- Largeur de la ligne 1 : 182 Hauteur de la ligne 1 : 15 ------------------------------- Largeur de la ligne 2 : 37 Hauteur de la ligne 2 : 15 -------------------------------
Voilà, vous savez désormais utiliser la classe TextLineMetrics. Évidemment celle-ci vous permettra d’accéder à plein d’autres informations sur un texte, un petit tour vers la documentation vous aidera à en savoir plus.

Commentaires
Mike - 5 février 2010
Tres utile a l’occasion! Merci!
bi - 22 juin 2011
Merci bien fait
Laisser un commentaire