20 décembre 2009

AS3 : TextLineMetrics

TextLineMetrics ? En voilà une classe bien utile mais peu connue ! Un exemple par la pratique dans la suite.

as3

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

Commentaire