Pour travailler avec du texte dans Flash, il est nécessaire d'importer une multitude de classes afin de mettre à jour le formatage!
En effet, il y a les classes qui contiennent des constantes ( TextFieldAutoSize, TextFieldAlign, TextFieldType etc ... ), la classe TextFormat, la classe Font, la classe TextField etc... Sans compter qu'il en existe encore beaucoup d'autres pour des utilisations diverses et variées.
Dans cet article, nous allons créer un composant qui va nous simplifier tout ça.
Ce composant n'en est pas réellement un, dans le sens où il n'implémentera pas UIComponent. Il étendra simplement la classe de base TextField et ajoutera des fonctionnalités bien pratiques.
II. CDCF d'un TextField
En route pour la rédaction du CDCF (Cahier Des Charges Fonctionnel).
Il n'est pas forcément aisé de donner une liste de fonctionnalités pour un champ de type UITextField sans basculer directement dans la technique.
Effectivement, les fonctionnalités que nous pourrions décrire sont déjà toutes disponibles de manière native. La seule chose qui change, c'est la manière de les implémenter.
Nous passons donc directement au Cahier Des Charges Techniques.
III. CDCT d'un TextField
Nous développons la classe UITextField. Nous implémenterons également des méthodes supplémentaires sur cette classe. Celles-ci nous permettront de formater le texte sans passer par la classe TextFormat ni d'autres classes annexes.
Voici l'ensemble des méthodes de la classe UITextField :
Méthode changeFormat : elle permet de définir le formatage du texte ou d'un groupe de caractères à l'aide d'une seule et unique méthode.
Méthode changeLetterFormat : cette méthode permet de définir le format d'une seule lettre.
Méthode getLetterFormat : elle permet de récupérer le format d'une seule lettre.
Getter/ Setter appelé font : pour changer et récupérer la police de caractère. L'embarquement des polices sera géré automatiquement par le setter qui déterminera si la police est une police système ou non.
Méthode convertToInput : pour convertir le texte en champ de saisie.
Méthode convertToDynamic : pour convertir le texte en champ dynamique.
Nous implémenterons également des méthodes pour changer l'alignement et le redimensionnement automatique du texte : alignCenter, alignRight, alignLeft, alignJustify, autoSizeRight, autoSizeLeft, autoSizeCenter, autoSizeNone. Ce qui nous évitera de devoir utiliser les classes TextFieldAutoSize et TextFieldAlign.
Getters / Setters maxWidth et maxHeight : permet de définir une largeur et une hauteur maximale.
Méthode destroy : et enfin nous implémenterons une méthode qui permet de détruire proprement notre composant, comme pour un UIComponent.
IV. Conclusion
Nous disposons maintenant d'un champ texte dont le formatage peut être changé de manière extrêmement simplifiée.
Le Composant UITextField se révèle être une véritable bénédiction pour travailler avec du texte.
Évolutions des fonctionnalités
Pour améliorer notre Composant AS3 TextField, voici quelques exemples de fonctionnalités supplémentaires à développer.
>
A vous de jouer !
TextField avec des fonts dynamiques
Je vous propose d'utiliser des fonts (polices) dynamiques pour vos textes. La lecture de cet article Utiliser des polices partagées dynamiquement en AS3 devrait grandement vous faciliter la tâche!
Sources commentées
com.actionscriptfacile.ui.text.UITextField.as
UITextFieldExample.as
Vous trouverez ci-dessous l'ensemble des classes créées. Elles sont commentées pour vous permettre de comprendre leur fonctionnement.
Je remercie La RédactriceKalyparker qui a réalisé un travail énorme avec la mise au gabarit Developpez.com de l'ensemble des articles du Framework de Composants AS3 ActionScript-Facile.com.
Merci beaucoup à l'Equipe Developpez.com pour son aide concernant la diffusion de tous les tutoriels.
Rendez-vous sur
ActionScript-Facile
pour consulter des tutoriels, télécharger des codes sources supplémentaires et recevoir
un guide sur l'utilisation de l'Editeur ActionScript FDT.