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, les classes TextFieldAutoSize, TextFieldAlign,
TextFieldType, TextFormat, Font,
TextField, etc, sont nécessaires pour modifier un champ texte.
Dans cet article, nous allons créer un composant qui va simplifier la création et le formatage d'un champ texte.
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 indispensables.
II. CDCF d'un TextField
C'est parti pour la rédaction du CDCF (Cahier Des Charges Fonctionnel).
Les fonctionnalités que nous pourrions décrire, pour un champ de type UITextField, 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 à la rédaction du Cahier Des Charges Techniques.
III. CDCT d'un TextField
Nous développons la classe UITextField. Nous implémentons également des méthodes supplémentaires sur cette classe.
Celles-ci nous permettront de formater le texte sans passer par la classe TextFormat ni les 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.
Ces méthodes évitent d'utiliser les classes TextFieldAutoSize et TextFieldAlign.
Getters / Setters maxWidth et maxHeight : permettent de définir une largeur et une hauteur maximale.
Méthode destroy : et enfin nous implémentons une méthode qui permettra 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.
TextField avec des fonts dynamiques
Je vous propose d'utiliser des polices (ou fonts) dynamiques pour afficher vos champs textes.
C'est à dire que vous pouvez utiliser des polices originales.
Elles ne sont généralement pas disponibles dans les polices de bases des systèmes d'exploitations (Windows, Linux, MAC).
Il est donc nécessaire de charger ses polices dans le Flash Player.
La lecture de cet article, Utiliser des polices partagées dynamiquement en AS3, devrait grandement vous faciliter la tâche !
L'Editeur ActionScript FDT 4.0 simplifie énormément la création de swf de polices partagées en ActionScript : Téléchargez le guide d'utilisation de l'Editeur ActionScript FDT.
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.
Et vous, comment avez-vous simplifié l'utilisation de la classe TextField :3 commentaires Avez-vous ajouté des fonctionnalités supplémentaires au composant UITextField ?
V. Remerciements / Téléchargements
Je tiens ici à remercier La RédactriceKalyparker
pour la mise au gabarit de l'article original au format Developpez.com.
Merci beaucoup à l'équipe Developpez.com de contribuer à la diffusion du Framework ActionScript-Facile.
Téléchargez l'ensemble des classes commentées du
Framework AS3 Facile (avec le code source et les exemples de tous les composants AS3).