Sujets sur : sharedfonts
Cours ActionScript 3 ‘sharedfonts’
Créer des swf polices partagées – embed fonts en pure ActionScript

Le tutoriel flash de cette semaine vous propose une nouvelle méthode rapide pour créer des swf contenant des polices de caractères ou embed fonts.
C’est une solution qui utilise des outils entièrement gratuits comme FDT ou encore FlashDevelop.
Voici ce que vous allez apprendre dans ce tutoriel ActionScript :
- La technique en pure ActionScript pour créer des swf contenant des polices de caractères.
- Cette solution est compatible quelque soit l’éditeur ActionScript : Adobe CS5, FDT, FlashDevelop…
- Comment créer des swf embed fonts ou polices partagées, directement à partir de fichiers ttf.
- La méthode pour associer plusieurs styles (italique, gras, gras-italique) à la même police.
- Une technique unique pour associer une police gras et une police italique à partir de fichiers ttf différents à une embed font identique dans flash !
- La stratégie pas à pas pour le chargement dynamique du swf contenant les embed fonts – polices partagées.
- Et surtout comment utiliser les embed fonts dans une application flash.
Cette formation AS3 vous permettra de créer des swf contenant des polices partagées, pour les charger dynamiquement et les utiliser dans votre application ou jeu flash.
Embed Fonts / Polices partagées
Version démonstration
Ci-dessous, un exemple d’application flash qui charge un swf « embed fonts » et les utilise pour afficher du texte.
1 | http://e6msyji6epr.exactdn.com/wp-content/uploads/2012/04/embed-font.swf |
Télécharger le code source complet
Télécharger “Embed Fonts pure AS3” ex-embed-fonts.zip – Téléchargé 891 fois – 413,22 KoConsultez le tutoriel original sur le site scottgmorgan.com.
Consultez les méthodes embed fonts :
- Créer des swf de polices partagées avec FDT.
- Créer des swf de polices partagées avec FlashDevelop et swfmill.
Quelle technique utilisez-vous pour créer vos swf embed fonts ?
Nous avons vu plusieurs tutoriels flash pour créer des swf embed fonts – polices partagées (swfmill, FDT, pure AS3, Adobe CS5).
Dites-moi votre solution préférée et pourquoi dans les commentaires ci-dessous !
Comment utiliser des polices Bitmap en AS3 avec Bitmap Font Renderer ?
Commentaires fermés sur Comment utiliser des polices Bitmap en AS3 avec Bitmap Font Renderer ?

Le cours AS3 de cette semaine vous propose de découvrir une nouvelle technique pour utiliser vos polices de fichiers ttf.
C’est à dire de transformer, avec ActionScript, une police ttf en police Bitmap utilisable par une application flash.
Voici ce que vous allez apprendre dans ce Cours ActionScript :
- Comment utiliser vos polices systèmes à partir d’un fichier ttf.
- Comment créer ces polices sous forme Bitmap, c’est à dire les enregistrer dans une image png.
- La technique pour utiliser le framework BMFontRenderer pour afficher rapidement du texte personnalisé.
Cette formation AS3 vous permettra d’être capable d’utiliser des polices bitmap directement dans Flash.
BMFontRenderer
[spoiler]Bonjour à tous ici Matthieu pour actionscript-facile.com
Dans ce cours AS3 nous allons voir comment utiliser des polices bitmap en AS3.
Grâce à un petit package, il s’appelle : bitmap font renderer.
C’est-à-dire nous allons utiliser des polices personnalisées de type TTF.
Donc des polices que vous avez sous Windows, sous Linux ou sous Mac.
Ensuite, ces polices, nous allons les intégrer sous forme bitmap.
C’est-à-dire, à partir d’une image PNG, et sous flash, ce sera un bitmap qui sera affiché sur la scène.
Passons tout de suite à la pratique.
Alors nous avons le package bitmap front renderer.
Je vous enverrai le viens vers le site de l’auteur pour pouvoir le télécharger.
Dans un premier temps, il faut créer notre image PNG qui va contenir l’ensemble des caractères de la police.
Et également il nous faut créer le fichier .FNT qui contient les coordonnées et la taille de chaque caractère de la police.
Pour cela, vous pouvez utiliser soit bitmap font générator avec l’URL qui s’affiche ou alors yero.
Je vais utiliser Hiero pour créer l’image PNG qui contient tous les caractères de notre police.
Vous lancez le logiciel. Son fonctionnement est très simple.
Vous choisissez votre police parmi toutes celles qu’il y a sur votre ordinateur.
Il y en a beaucoup beaucoup beaucoup sur le mien.
Ensuite vous sélectionnez ascii ??
Vous faites un reset cash pour intégrer plus ou moins de glyphes donc de caractères dans votre police.
Nous, on va en intégrer beaucoup donc avec les caractères accentués et les chiffres, les majuscules.
Il y a également la possibilité d’intégrer des effets, ça c’est vraiment génial !
Soit vous en mettez, soit vous en mettez pas.
Vous pouvez enlever l’effet. J’ajoute un petit effet shadow, c’est très sympa.
Je lui ai donné une couleur. Vous pouvez définir la couleur de base de votre police.
Ensuite, il ne vous reste plus qu’à sauvegarder le fichier FNT sur votre disque dur.
C’est aussi simple que cela et votre police est créée.
Qu’est-ce que ça vous donne comme résultat ?
Et bien vous avez une image PNG qui contient tous les caractères de votre police :
les chiffres
les lettres majuscules, minuscules
les caractères accentuées
etc. etc.
Bien évidemment, Hiero est gratuit.
Il fonctionne avec la machine Java donc il vous suffit de télécharger Java gratuitement et ce logiciel.
Regarder bien la configuration que j’ai utilisé c’est très important sinon ça ne fonctionnera pas très bien.
Ensuite, passons à la partie actionscript.
La partie actionscript qu’est ce qu’il faut faire ?
C’est très simple, on utilise des ressources embed donc on importe le fichier FNT que je vais vous montrer.
Le fichier FNT contient les coordonnés des lettres comme je vous le dis.
Pour chaque lettre, il contient la taille et les coordonnées.
Voilà le nom de la police, si on a pris bold ou italique, vous avez remarqué que je n’ai pas pris ni bold ni italique donc je ne pourrais pas l’utiliser.
Pareil le fichier PNG vous l’importez en embed ressource.
Cela permet de définir la couleur de fond de mon SWF.
Rien de bien méchant, comme d’habitude notre classe main qui étend Sprite.
Une fois que tout est prêt, on lance l’intégration de la police.
On va utiliser la classe bitmap font qui est ici.
Cette classe, on charge, on utilise new font data qu’on stock dans un byteArray font data.
C’est notre fichier FNT qui contient les coordonnées.
On le lit et on parse le fichier obtenu de font : les coordonnées de chaque caractère de la police.
On le parse, on affiche le nombre de glyphes parsés.
Ici on va en trouver 156.
Quand on utilisera le monster debuggueur, on aura également 156.
Et il nous reste plus qu’à ajouter l’image PNG qui contient les caractères de la police dans notre objet bitmap PNF font.
C’est la classe de base, créer un bitmap data, avec sa taille, on utilise la transparence, la couleur.
Et notre texte on le positionne.
Voici du texte, je peux rajouter des chiffres.
Également, on créé un deuxième texte avec des caractères accentués, des caractères spécifiques.
Et on les ajoute, on ajoute nos bitmap.
C’est-à-dire que ça fonctionne avec un bitmap data. La police est au format bitmap.
Il nous reste plus qu’à lancer la compilation et vous voyez notre police.
C’est votre police personnalisée en fichiers TTF qui est sur votre disque dur qui s’affichera dans l’application flash de votre internaute.
Tout simplement !
Ca peut être utile dans certains quand on ne veut pas s’embêter à exporter la police dans un fichier SWF.
C’est une solution très rapide qui permet d’utiliser des polices bitmap.
Voilà donc dans le monster debugeur, ça marche il y a 256 glyphes.
Je recharge voilà.
Comme d’habitude, vous trouverez le code source complet de bitmap front renderer sous cette vidéo.
Est ce que vous avez déjà utilisé les polices bitmap dans vos applications flash ?
Dites moi ça dans les commentaires sous cette vidéo.
C’est un cours ActionScript très court et très simple.
Les polices bitmap peuvent être très pratiques et en plus c’est très rapide à utiliser.
Je vous dis à très bientôt sur actionscript-facile.com[/spoiler]
Version démonstration
Ci-dessous un exemple tout simple d’utilisation des polices bitmap dans flash !
1 | http://e6msyji6epr.exactdn.com/wp-content/uploads/2011/12/BMFontRenderer.swf |
Télécharger le code source du cours AS3
Vous trouverez l’ensemble du code source commenté pour vous aider.
Télécharger “Bitmap Font Renderer” BMFontRenderer.zip – Téléchargé 735 fois – 225,27 KoTélécharger la dernier version de BMFontRenderer.
Télécharger le logiciel gratuit Hiero pour créer les images png des polices de caractères.
Et vous, avez-vous déjà utilisé les polices bitmap dans vos applications flash ?
Je suis curieux de voir vos applications flash avec des polices bitmap.
Postez-les dans les commentaires ci-dessous !
Comment utiliser les polices embarquées en Flash ActionScript 3 avec FDT PowerFlasher ?

Dans un article précédent, vous avez appris à créer des swf contenant des polices partagées avec FlashDevelop et swfmill.
Après utilisation, cette méthode s’avère longue et compliquée. Comme vous, c’est cette solution que j’utilisais au départ.
Puis j’ai découvert l’éditeur FDT. C’est un logiciel très efficace, il permet de créer très rapidement et simplement des swf contenant vos polices de caractères.
Un vrai jeu d’enfant !
Vous choisissez les polices à inclure dans le swf, leurs styles et il suffit de cliquer sur le bouton « create » pour obtenir un swf de polices embarquées.
Ce n’est pas plus compliqué que cela.
Dans le cours vidéo de cette semaine, je vous propose de découvrir la création de swf de polices embarquées ou partagées avec FDT PowerFlasher.
Voici ce que je vais vous apprendre :
- Pourquoi créer des swf contenant uniquement des polices de caractères, quel est l’intérêt.
- Comment utiliser FDT PowerFlasher pour créer des swf de polices embarquées ou partagées.
- Pour ceux qui n’ont pas de licence FDT, la technique pour créer des swf de polices de caractères gratuitement. Et comment automatiser la création.
- Pour ceux qui préfèrent le logiciel Adobe FLash CS5, vous saurez comment concevoir des swf de polices partagées directement avec Adobe CS5.
A la fin de cette formation actionscript, vous connaitrez plusieurs méthodes pour créer des swf de polices partagées. Et surtout, vous saurez quand cela est nécessaire ou non.
Exemple d’application flash
Ci-dessous, l’application charge un fichier fonts.swf qui contient 3 polices de caractères différentes. Puis le flash affiche du texte en utilisant ces polices embarquées.
1 | http://e6msyji6epr.exactdn.com/wp-content/uploads/2011/07/FDT-polices-partagees.swf |
Téléchargez le code source polices embarquées en AS3
Vous trouverez l’ensemble du code source commenté pour ce cours Actionscript.
Télécharger “FDT Polices partagées en AS3” ex-FDT-polices-embarquees.zip – Téléchargé 1130 fois – 298,06 KoLe site DaFont pour télécharger des polices de caractères originales.
Téléchargez l’éditeur FDT PowerFlasher.
Avez-vous des polices de caractères préférées ?
Partagez-les via les commentaires ci-dessous.
Et ajoutez le lien vers votre application flash pour montrer un rendu visuel de leurs utilisations.
Comment utiliser des polices partagées via des swf externes ?

Dans cette vidéo, nous allons apprendre à créer des polices partagées dans des swf externes avec le logiciel swfmill.
Ensuite, ces swf sont chargés par votre application, en fonction des besoins de l’internaute.
Puis, vous pouvez utiliser les polices de caractères les plus originales pour vos applications flash.
Ci-dessous, voici un exemple d’application qui utilise des polices partagées.
Mêmes si ces polices de caractères ne sont pas installées sur votre navigateur. Celles-ci s’affichent correctement dans l’application 🙂
1 | http://e6msyji6epr.exactdn.com/wp-content/uploads/2011/03/shared_fonts.swf |
Téléchargez le code source complet de l’exemple :
Télécharger “Polices partagées avec swfmill et FlashDevelop” shared_fonts.zip – Téléchargé 811 fois – 368,46 KoTéléchargez l’éditeur ActionScript FlashDevelop.
Téléchargez le logiciel swfmill.
Et vous, comment créez-vous vos swf de polices partagées ?
Peut-être que vous utilisez Adobe Flash ou FDT (le plus rapide 🙂 ) ?
Dites-le moi via les commentaires ci-dessous.
Comment utiliser du texte dynamique en AS3 avec TextField ?
Pour travailler avec du texte dans Flash, il est nécessaire d‘utiliser une multitude de classes différentes !
En effet, les classes ( TextFieldAutoSize, TextFieldAlign, TextFieldType, TextFormat, Font, TextField etc… sont utiles pour définir la mise en forme d’un champ texte.
Dans ce tutoriel, nous allons créer le Composant AS3 TextField pour simplifier la manipulation d’un champ texte.
Ce composant étendra tout simplement la classe de base TextField et ajoutera des fonctionnalités très intéressantes !
I – Cahier Des Charges Fonctionnel du TextField
Comme d’habitude, nous passons à la rédaction du CDCF (Cahier Des Charges Fonctionnel).
La liste des fonctionnalités pour un champ de type UITextField est déjà disponible de manière native en ActionScript.
La seule chose qui change, c’est la façon de les implémenter.
Nous passons donc directement à la création du Cahier Des Charges Techniques.
II – Cahier Des Charges Techniques du TextField
Pour cela, nous allons créer la classe UITextField. Nous lui ajoutons des méthodes supplémentaires. 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émentons également des méthodes pour changer l’alignement et le redimensionnement automatique du texte : alignCenter, alignRight, alignLeft, alignJustify, autoSizeRight, autoSizeLeft, autoSizeCenter, autoSizeNone. Des méthodes qui nous simplifient l’utilisation des 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 permet de détruire proprement notre composant. Elle ressemble de très près à la méthode destroy de la classe UIComponent.
Conclusion
Nous disposons maintenant d’un champ texte avec une mise à jour de son formatage grandement facilitée.
A l’utilisation, le composant UITextField se révèle être une véritable bénédiction pour manipuler un champ texte.
1 | http://e6msyji6epr.exactdn.com/wp-content/uploads/2010/09/textfield_exemple.swf |
Évolutions des fonctionnalités
Pour améliorer notre Composant AS3 TextField, vous trouverez ci-dessous un exemple d’utilisation.
A vous de jouer !
TextField avec des fonts dynamiques
Je vous propose d’utiliser des fonts (polices) dynamiques pour vos textes.
Amusez-vous en utilisant des polices originales : découvrez un vaste choix de polices gratuites sur dafont. 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 les charger 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 des swf de polices partagées : 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.
Vous pouvez télécharger le fichier zip : Télécharger “Component TextField Framework actionscript-facile” component_textfield_framework_actionscript-facile.zip – Téléchargé 1454 fois – 74,15 Ko
Et vous, comment utilisez-vous le texte / TextField en AS3 ?
Quelles classes avez-vous développé pour simplifier la création des champs textes dynamiques avec Flash ?
Je serais ravis de voir vos différentes implémentations. Utilisez les commentaires juste en dessous pour partager votre code.
[codesyntax lang= »actionscript3″ title= »com.actionscriptfacile.ui.text.UITextField.as » bookmarkname= »com.actionscriptfacile.ui.text.UITextField.as « ]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 | package com.actionscriptfacile.ui.text { import flash.text.Font; import flash.text.FontType; import flash.text.TextField; import flash.text.TextFieldAutoSize; import flash.text.TextFieldType; import flash.text.TextFormat; import flash.text.TextFormatAlign; import flash.utils.Dictionary; import flash.utils.getDefinitionByName; /** * La classe UITextField est une extension de la classe flash.text.TextField de base. * Elle inclut quelques fonctionnalités qui permettent de gérer plus facilement la mise * en forme d'un champ texte. * * @author Matthieu */ public class UITextField extends TextField { protected static var m_allowedFonts:Dictionary; // Une liste des différentes polices de caractères autorisées. protected var m_currentFont:String; // Le nom de la police de caractère utilisée actuellement protected var m_maxWidth:Number; // la largeur maximale du champ texte protected var m_maxHeight:Number; // la hauteur maximale du champ texte public function UITextField() { super(); /* * on crée une méthode init pour gagner des ressources, * en effet en AS3 tout ce qui se trouvre dans le constructeur n'est * pas optimisé à la compilation, * on met donc toutes nos instructions dans une méthode privée init * */ init(); } /** * Initialise proprement les différents éléments du composant * */ private function init():void { // si le tableau de fonts n'est pas encore initialisé alors ... if ( m_allowedFonts == null ) { m_allowedFonts = new Dictionary(); // on le crée var fonts:Array = Font.enumerateFonts( true ); // on récupère toutes les polices utilisables var max:int = fonts.length - 1; /** * On boucle sur toutes les polices et on les ajoute à la liste des typos autorisées */ for ( ; max > -1; max-- ) { m_allowedFonts[Font( fonts[max] ).fontName ] = fonts[max]; } // on définit une police par défaut m_currentFont = Font( fonts[ 0 ] ).fontName; } // puis on définit une hauteur et une largeur maximale théorique. m_maxHeight = m_maxWidth = 500; } /** * Cette fonction sert à changer le format d'un caractère * * @param p_letterIndex Index du caractère dont on veut changer le formatage * @param p_propertyName La nom de la propriété de formatage que l'on veut changer * @param p_value La valeur de la propriété de formatage */ public function changeLetterFormat( p_letterIndex:int, p_propertyName:String, p_value:* ):void { changeFormat( p_propertyName, p_value, p_letterIndex, p_letterIndex + 1, false ); } /** * Cette fonction sert à récupérer le format d'un caractère * * @param p_letterIndex Index du caractère dont on veut récupérer le formatage * @return Un objet de type TextFormat */ public function getLetterFormat( p_letterIndex:int ):TextFormat { return getTextFormat( p_letterIndex, p_letterIndex ); } /** * Cette méthode permet un accès direct aux propriétés de l'objet TextFormat du TextField. * Elle a pour but de simplifier la mise à jour graphique d'un champ texte par le biais * d'un appel à une seule méthode. * http://help.adobe.com/fr_FR/AS3LCR/Flash_10.0/flash/text/TextFormat.html * * @param p_propertyName nom de la propriété à changer @see flash.text.TextFormat * @param p_value valeur de la propriété * @param p_startIndex index de départ à partir duquel les changements opéreront dans le texte. * @param p_endIndex index de fin. */ public function changeFormat( p_propertyName:String, p_value:*, p_startIndex:int = -1, p_endIndex:int = -1, p_isDefault:Boolean = false ):void { // si la longueur du champ texte est inférieur à l'index maximal des caractères demandés alors on arrête tout if ( text.length < p_endIndex ) return; // on récupère le format des caractères compris entre p_startIndex et p_endIndex var format:TextFormat = getTextFormat( p_startIndex, p_endIndex ); // si le textformat possède la propriété p_propertyName if ( format.hasOwnProperty( p_propertyName ) ) { // alors on définit la nouvelle valeur de la propriété en question format[ p_propertyName ] = p_value; } // si on a définit le paramètre p_isDefault à true if ( p_isDefault ) { // alors le format devient le format par défaut defaultTextFormat = format; } // enfin, on applique le format au champ texte pour les caractères spécifiés. setTextFormat( format, p_startIndex, p_endIndex ); } /** * Convertir le champ texte en champ de saisie */ public function convertToInput():void { type = TextFieldType.INPUT; } /** * Convertir le champ texte en champ dynamique */ public function convertToDynamic():void { type = TextFieldType.DYNAMIC; } /** * Aligne le champ texte par le centre */ public function alignCenter():void { changeFormat( 'align', TextFormatAlign.CENTER ); } /** * Aligne le champ texte en mode justifié */ public function alignJustify():void { changeFormat( 'align', TextFormatAlign.JUSTIFY ); } /** * Aligne le champ texte par la gauche */ public function alignLeft():void { changeFormat( 'align', TextFormatAlign.LEFT ); } /** * Aligne le champ texte par la droite */ public function alignRight():void { changeFormat( 'align', TextFormatAlign.RIGHT ); } /** * Redimensionne automatiquement le champ texte par le centre */ public function autoSizeLeft():void { autoSize = TextFieldAutoSize.LEFT; }; /** * Précise que le champ texte ne doit plus se redimensionner automatiquement */ public function autoSizeNone():void { autoSize = TextFieldAutoSize.NONE; }; /** * Redimensionne automatiquement le champ texte par la droite */ public function autoSizeRight():void { autoSize = TextFieldAutoSize.RIGHT; }; /** * Redimensionne automatiquement le champ texte par la gauche */ public function autoSizeCenter():void { autoSize = TextFieldAutoSize.CENTER; }; /** * Définit la nouvelle police de caractère utilisée pour ce champ texte. * Si la police ne fait pas partie des polices autorisées, le système va tenter * de la retrouver. En cas d'échec la police ne sera pas changée, dans le cas contraire * la nouvelle police sera utilisée et ajoutée à la liste des polices autorisées. */ public function set font( p_font:String ):void { var fontDefinition:Class; if ( m_allowedFonts[p_font] == null || // si la police n'est pas autorisée alors ... Font( m_allowedFonts[p_font] ).fontType != FontType.DEVICE // ou qu'il ne s'agit pas d'une typo système ) { try { // on tente de récupérer sa définition fontDefinition = getDefinitionByName( p_font ) as Class; // on l'enregistre auprès du flash player Font.registerFont( fontDefinition ); // et on l'ajoute à la liste des typos autorisées m_allowedFonts[ p_font ] = new fontDefinition() as Font; } catch ( e:Error ) { // dans le cas ou l'on n'est pas arrivé à récupérer la définition de la classe on arrête tout return; } } // si il s'agit d'une police du système alors emebedFonts = false sinon embedFonts = true embedFonts = ( Font( m_allowedFonts[p_font] ).fontType != FontType.DEVICE ); // on redéfinit la font utilisée m_currentFont = p_font; // et on applique la nouvelle police de caractère au format changeFormat( 'font', p_font ); } /** * Récupère le nom de la police utilisée pour ce champ texte */ public function get font():String { return m_currentFont; } /** * Récupère / définit la valeur de la largeur maximale autorisée pour ce champ texte */ public function get maxWidth():Number { return m_maxWidth; } public function set maxWidth(value:Number):void { m_maxWidth = value; } /** * Récupère / définit la valeur de la hauteur maximale autorisée pour ce champ texte */ public function get maxHeight():Number { return m_maxHeight; } public function set maxHeight(value:Number):void { m_maxHeight = value; } /** * Définit la largeur / hauteur du champ texte */ override public function set width( p_width:Number ):void { super.width = ( p_width > m_maxWidth ) ? m_maxWidth : p_width; } override public function set height( p_height:Number ):void { super.height = ( p_height > m_maxHeight ) ? m_maxHeight : p_height; } /** * Détruit proprement un composant de type UITextField */ public function destroy():void { // la police de caractère est passée à null. m_currentFont = null; // on enlève le composant de la displayList de son parent if ( parent && parent.contains( this ) ) { parent.removeChild( this ); } delete this; } } } |
[/codesyntax]
[codesyntax lang= »actionscript3″ title= »UITextFieldExample.as » bookmarkname= »UITextFieldExample.as »]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 | package { import com.actionscriptfacile.ui.combo.element.ComboBoxElement; import com.actionscriptfacile.ui.combo.ComboBox; import com.actionscriptfacile.ui.text.UITextField; import com.as3facileexemple.skin.classic.DefaultComboBoxSkin; import flash.display.Sprite; import flash.events.Event; import flash.text.Font; /** * Exemple d'utilisation du composant UITextField * * @author Matthieu */ public class UITextFieldExample extends Sprite { protected var m_comboFonts:ComboBox; protected var m_textField:UITextField; public function UITextFieldExample() { /** * On construit la combobox */ m_comboFonts = new ComboBox(); m_comboFonts.applySkin( new DefaultComboBoxSkin() ); // on écoute les changements qui interviennent dans la combobox m_comboFonts.addEventListener(Event.CHANGE, changeHandler ); m_comboFonts.resize( 300, 100 ); m_comboFonts.componentsHeight = 25; // on ajoute tous les noms de polices autorisées comme élément de la combobox var fonts:Array = Font.enumerateFonts( true ); var boxElement:ComboBoxElement; for each ( var font:Font in fonts ) { boxElement = m_comboFonts.addElement( font.fontName, font.fontName ); boxElement.labelField.changeFormat("color", Math.random() * 0X00FFFFFF);// changement de la couleur du texte boxElement.labelField.changeFormat("size", 14);// changement de la taille de la police du texte } /** * On construit un UITextField */ m_textField = new UITextField(); m_textField.text = 'Enjoy :)'; m_textField.x = m_textField.y = 5; m_textField.width = m_textField.maxWidth = 300; m_textField.height = m_textField.maxHeight = 30; m_comboFonts.y = m_textField.y + m_textField.height + 20; m_comboFonts.x = 5; addChild( m_comboFonts ); addChild( m_textField ); } /** * Fonction servant à écouter le changement de police au sein de la combobox. * On applique la police à l'UITextField que l'on a crée et placé sur la * scène. * * @param e Evenement de type Event.CHANGE */ private function changeHandler(e:Event):void { m_textField.font = m_comboFonts.currentLabel; } } } |
[/codesyntax]