La gestion du texte
CHAPITRE 14
327
Quelques mots sur les pages de ce chapitre
Comme nous l’évoquions quelques lignes plus haut, toutes les propriétés abordées dans
ce chapitre sont valables pour les textes créés directement sur la scène ainsi que pour les
textes créés dynamiquement à l’aide de la classe TextField(). Dans le cas où vous créeriez votre propre texte sur la scène en lui donnant pour nom celui qui figure devant
l’instruction :TextField = new TextField(); de chaque exemple, vous pourriez alors vous
passer de saisir les trois lignes ci-dessous :
var titreAccueil:TextField = new TextField();
titreAccueil.text = "Yazo";
addChild(titreAccueil);
À l’exécution des lignes d’instructions contenues dans tous les exemples de ce paragraphe, quelle que soit la méthode (approche POO ou programmation séquentielle), il faut
reconnaître que l’apparence du texte par défaut n’est pas très agréable à lire. C’est tout à
fait normal car nous ne l’avons pas formaté. En ce qui concerne sa position sur la scène,
c’est à vous de faire appel aux propriétés x et y pour le placer précisément.
messageAccueil.x = 30;
messageAccueil.y = 20;
Stocker un nombre dans un texte dynamique
Pour placer un contenu dans un texte dynamique ou un texte de saisie, vous avez pu constater
que la technique est extrêmement simple : il suffit de faire référence à la propriété text.
En revanche, un problème se pose lorsque vous souhaitez placer un nombre dans un texte
dynamique, car l’instance est typée naturellement. En effet, l’exécution des lignes
d’instructions ci-dessous entraîne une erreur de compilation.
var titreAccueil:TextField = new TextField();
titreAccueil.text = 30;
addChild(titreAccueil);
Cela signifie que vous essayez de stocker un nombre dans la variable titreAccueil qui est
de type String (texte) et qui attend donc une variable de ce type.
Pour remédier à ce problème, vous disposez d’une solution qui consiste à placer la valeur
à stocker entre guillemets.
var titreAccueil:TextField = new TextField();
titreAccueil.text = "30";
addChild(titreAccueil);
1067: Contrainte implicite d'une valeur du type int vers un type sans rapport String.
Remarque
Si vous aviez besoin de récupérer la valeur stockée dans l’instance de type texte intitulée titreAccueil dans
le but d’effectuer un calcul, il faudrait alors faire une conversion en utilisant la classe Number(), comme :
trace(Number(titreAccueil.text)*3);
90
CHAPITRE 14
327
Quelques mots sur les pages de ce chapitre
Comme nous l’évoquions quelques lignes plus haut, toutes les propriétés abordées dans
ce chapitre sont valables pour les textes créés directement sur la scène ainsi que pour les
textes créés dynamiquement à l’aide de la classe TextField(). Dans le cas où vous créeriez votre propre texte sur la scène en lui donnant pour nom celui qui figure devant
l’instruction :TextField = new TextField(); de chaque exemple, vous pourriez alors vous
passer de saisir les trois lignes ci-dessous :
var titreAccueil:TextField = new TextField();
titreAccueil.text = "Yazo";
addChild(titreAccueil);
À l’exécution des lignes d’instructions contenues dans tous les exemples de ce paragraphe, quelle que soit la méthode (approche POO ou programmation séquentielle), il faut
reconnaître que l’apparence du texte par défaut n’est pas très agréable à lire. C’est tout à
fait normal car nous ne l’avons pas formaté. En ce qui concerne sa position sur la scène,
c’est à vous de faire appel aux propriétés x et y pour le placer précisément.
messageAccueil.x = 30;
messageAccueil.y = 20;
Stocker un nombre dans un texte dynamique
Pour placer un contenu dans un texte dynamique ou un texte de saisie, vous avez pu constater
que la technique est extrêmement simple : il suffit de faire référence à la propriété text.
En revanche, un problème se pose lorsque vous souhaitez placer un nombre dans un texte
dynamique, car l’instance est typée naturellement. En effet, l’exécution des lignes
d’instructions ci-dessous entraîne une erreur de compilation.
var titreAccueil:TextField = new TextField();
titreAccueil.text = 30;
addChild(titreAccueil);
Cela signifie que vous essayez de stocker un nombre dans la variable titreAccueil qui est
de type String (texte) et qui attend donc une variable de ce type.
Pour remédier à ce problème, vous disposez d’une solution qui consiste à placer la valeur
à stocker entre guillemets.
var titreAccueil:TextField = new TextField();
titreAccueil.text = "30";
addChild(titreAccueil);
1067: Contrainte implicite d'une valeur du type int vers un type sans rapport String.
Remarque
Si vous aviez besoin de récupérer la valeur stockée dans l’instance de type texte intitulée titreAccueil dans
le but d’effectuer un calcul, il faudrait alors faire une conversion en utilisant la classe Number(), comme :
trace(Number(titreAccueil.text)*3);
90
