<h2>Votre Formation vidéo</h2><br/>
Votre formation est décomposée<br/>
en chapitres très clairs de 20 à 30 min. <h2>Des exemples SWF </h2><br/>
Chaque leçon est accompagnée<br/>
du code source avec le fla et les classes. <h2>Votre Suivi personnalisé</h2><br/>
Vous pouvez  me poser toutes<br/>
vos questions sous les cours vidéos.

Sujets sur : TextField

Cours ActionScript 3 ‘TextField’

La technique en 3 lignes de codes pour changer la couleur d’un Display Object en 30 secondes

1 question

Ecrit le 1 février par Matthieu
Publié dans le(s) sujet(s) ActionScript 3

Certaines applications utilisent plusieurs fois le même élément graphique avec seulement une différence : la couleur !

A travers ce tutoriel flash, vous apprenez une technique pour changer aléatoirement la couleur d’un Display Object.

De plus, vous allez découvrir les astuces ci-dessous :

  • Comment définir la couleur de fond (ou le background) de votre swf en pure ActionScript ou avec la balise embed de flash.
  • La solution pour créer un rectangle de couleur en pure ActionScript.
  • Les outils à utiliser pour debugger une application flash en ligne.
  • Les stratégies pour optimiser l’utilisation des classes Button et UITextField du Framework AS3 Facile.
  • Comment affecter une couleur aléatoire à un Display Object avec la classe Color.

Cette formation flash vous apprend à modifier rapidement la couleur d’un Display Object.

La classe Color et les Display Object

Version démonstration

Voici la version de l’application “Couleur aléatoire”.

https://www.actionscript-facile.com/wp-content/uploads/2013/02/random-color.swf

Télécharger le code source couleur aléatoire

Vous trouvez ci-dessous le code source complet pour affecter une couleur à un Display Object.

L’archive contient également le fichier fl_package.swc avec la classe Color.

Télécharger “Couleur aléatoire” couleur-aleatoire.zip – Téléchargé 54 fois – 421 KB

Quelles techniques utilisez-vous pour modifier la couleur d’un Display Object ?

Il existe plusieurs techniques pour modifier la couleur d’un Display Object comme ColorTransformColorMatrix, et bien d’autres…

Rendez-vous dans le prochain tutoriel pour découvrir les autres techniques.

Partagez votre technique de modification de couleur dans les commentaires ci-dessous.

Améliorer les performances Flash sous iPhone / Android avec Convert Text to Bitmap

Commentaires fermés sur Améliorer les performances Flash sous iPhone / Android avec Convert Text to Bitmap

Ecrit le 11 mai par Matthieu
Publié dans le(s) sujet(s) Android |iPhone

Et on continue dans la série de tutoriels consacrés au développement flash pour les iPhone, Android avec Adobe AIR.

Ce cours ActionScript est axé sur l’amélioration des performances des applications flash iPhone, Android.

C’est un fait, l’utilisation de textes dynamiques (les fameux TextField) dégrade les performances sur smartphones !

Il est donc important de trouver une alternative au TextField. Le texte est pratique pour afficher un score dans un jeux flash par exemple.

Et voici une classe qui permet de convertir automatiquement un TextField en images Bitmap.

Et ainsi, booster les performances de vos jeux flash pour iPhone et Android !

Text Bitmap

La version TextField et la version Bitmap sont quasiment identiques. Aucune différence à l’oeil nu sur un smartphone.

Il est possible de choisir l’alignement du texte : gauche, droite et centré.

L’affichage de textes multilignes n’est pas encore possible.

Cette classe prend en charge uniquement l’affichage de ligne simple.

Utilisation de BitmapText

Voici le constructeur de la classe BitmapText.

public function BitmapText(thisField:TextField,thisAlphabet:Object =null, thisCharList:String=null, thisProps:Object = null)

Voici le détail des paramètres du constructeur :

  • thisField : l’instance de votre TextField que vous voulez afficher avec le texte, les filtres, le format de la police…
  • thisAlphabet : un objet qui contient les lettres au format Bitmap déjà créées. Sinon BitmapText s’occupe de créer les lettres Bitmap si le paramètre est null.
  • thisCharList : la liste des caractères à utiliser pour les lettres Bitmap. Si paramètre null, BitmapText contient par défaut une liste de caractères.
  • thisProps : un objet qui permet d’initialiser automatiquement les propriétés de la classe.

Et voici un exemple d’utilisation de la classe BitmapText :

var oTextField:TextField = new TextField();
oTextField.text = "Bonjour AS3 Facile !!!!";
 
var oTextFormat:TextFormat = new TextFormat();
oTextFormat.font = "Arial";
oTextFormat.size = 18;
oTextFormat.color = 0x006f77;
oTextField.defaultTextFormat = oTextFormat;
 
var oBitmapText:BitmapText = new BitmapText(oTextField);

La classe BitmapText effectue une copie de votre TextField existant et l’enlève de la display list.

Pour mettre à jour le texte, vous pouvez utiliser simplement :

oBitmapText.text="Text AS3 Facile mis à jour.";

Il y a également plusieurs getter / setter pour personnaliser la classe BitmapText :

  • margin : spécifie l’espace entre les caractères.
  • edge_buffer : spécifie un espace (ou marge) intérieur autour des lettres. C’est pour prendre en compte les filtres autour de chaque caractère.

Exemple Bitmap Text

Et voici un exemple d’affichage qui montre :

  • en haut le TextField classique.
  • en dessous le Bitmap Text.
https://www.actionscript-facile.com/wp-content/uploads/2012/05/bitmap-font-iphone.swf

Télécharger le code source

Vous pouvez télécharger le code source de l’exemple utilisé.

Télécharger “Bitmap Fonts Auto iPhone Android” ex-bitmap-fonts-auto-iphone.zip – Téléchargé 133 fois – 103 KB

Consulter l’article original sur Flash on iPhone – Automatically convert dynamic text to high performance bitmaps (with filters)

Il existe également cette solution plus souple à utiliser, avec des filtres supplémentaires : Bitmap Font Renderer.

Pour des performances encore plus élevées, il est préférable d’utiliser les polices Bitmap avec stage3d et Starling Framework.

Quelles solutions utilisez-vous pour améliorer les performances Flash sur iPhone, Android ?

Partagez vos astuces dans les commentaires ci-dessous.

Créer des swf polices partagées – embed fonts en pure ActionScript

2 questions

Ecrit le 3 mai par Matthieu
Publié dans le(s) sujet(s) ActionScript 3 |Cours AS3

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.

https://www.actionscript-facile.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é 164 fois – 413 KB

Consultez le tutoriel original sur le site scottgmorgan.com.

Consultez les méthodes embed fonts :

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 !

Création d’un effet “texte défilant”

1 question

Ecrit le 30 mars par Matthieu
Publié dans le(s) sujet(s) ActionScript 3

Dans ce tutoriel ActionScript, je réponds à une question posée par un membre de la Formation AS3 Facile.

Comment réaliser un effet de défilement sur du texte ?

Voici ce que vous allez apprendre dans ce Tutoriel ActionScript Flash :

  • Création d’une classe utilitaire, réutilisable pour tous vos projets flash.
  • Création d’une classe pour la gestion du défilement d’un champ texte.
  • Utilisation des polices chargées dynamiquement dans le texte défilant.
  • Comment gérer le focus sur un champ texte input TextField, pour effectuer différentes actions.

Cette formation AS3 vous permettra d’ajouter des textes défilants dans vos applications flash.

Texte Défilant

Version démonstration

Ci-dessous un exemple d’utilisation de la classe utilitaire “texte défilant”.

https://www.actionscript-facile.com/wp-content/uploads/2012/03/texte-defilant.swf

Télécharger le code source du cours AS3

Vous trouverez l’ensemble du code source commenté pour vous aider à l’améliorer.

/**
 
  The Initial Developer of the Original Code is
  Matthieu  - https://www.actionscript-facile.com
  Portions created by the Initial Developer are Copyright (C) 2010
  the Initial Developer. All Rights Reserved.
 
  Contributor(s) :
 
 */
package com.as3facile.utils.text
{
	import flash.events.TimerEvent;
	import flash.utils.Timer;
	import flash.text.TextField;
 
	/**
	 * Permet d'afficher un texte avec un effet de défilement.
	 * 
	 * @author Matthieu
	 */
	public class TextDefil
	{
		private var oText : TextField;
		private var sTextInput : String;
 
		private var oTimer : Timer;
 
		private var nIndex : int;
		private var sTxtDefil : String;
 
		/**
		 * Constructeur.
		 * 
		 * @param txtDefil : l'objet TextField pré-configuré qui recevra le texte à afficher.
		 * 
		 */
		public function TextDefil(txtDefil:TextField) 
		{
			oText = txtDefil;
			oTimer = new Timer (95);// vitesse de défilement de 95 ms par défaut
			oTimer.addEventListener (TimerEvent.TIMER, onDefilTxt);
		}
 
		/**
		 * Affiche le texte petit à petit.
		 * Possibilité d'ajouter d'autrse effets sur le texte.
		 * 
		 */
		private function onDefilTxt(event : TimerEvent) : void
		{
			sTxtDefil += sTextInput.charAt (nIndex); // ajoute les caractères un par un au texte complet
			oText.text = sTxtDefil;// mise à jour du texte
			nIndex++;// caractère suivant
 
			// une fois que la phrase est affichée entièrement, arrêt du Timer
			if (nIndex == sTextInput.length) oTimer.stop();
		}
 
		/**
		 * Lance l'affichage du texte, lettre une par une.
		 * @param value : le texte à afficher.
		 * 
		 */
		public function startDefil(value:String):void
		{
			sTextInput = value;
			oText.text = sTxtDefil = "";
			nIndex = 0;
			oTimer.start();
		}
 
		/**
		 * Arrête le défilement du texte.
		 * 
		 */
		public function stopDefil():void
		{
			oTimer.stop();
		}
 
		/**
		 * Vitesse de défilement en ms.
		 * 
		 */
		public function setSpeed(value:Number) : void
		{
			oTimer.delay = value;
		}
 
		/**
		 * Détruit l'objet proprement.
		 * 
		 */
		public function destroy() : void
		{
			oTimer.removeEventListener (TimerEvent.TIMER, onDefilTxt);
		}
 
	}
}

Télécharger “Effet texte défilant” ex-texte-defilant.zip – Téléchargé 391 fois – 194 KB

Posez votre question ActionScript Flash !

Rencontrez-vous des difficultés dans votre programmation Flash ?

Dites-moi les sujets que vous souhaitez que j’aborde dans les prochains tutoriels ActionScript.

Classe de Sortie Debug Ultra Simple en ActionScript 3

Commentaires fermés sur Classe de Sortie Debug Ultra Simple en ActionScript 3

Ecrit le 1 novembre par Matthieu
Publié dans le(s) sujet(s) ActionScript 3

Sur le site  de Grant Skinner, j’ai trouvé une classe de sortie debug ultra simple et pratique.

Pour afficher rapidement des valeurs, comme un trace, cette petite classe utilitaire est un bijou !

Utilisation de Out.as

Pour l’utiliser, c’est facile, il suffit de mettre la classe Out.as dans votre répertoire source (ou src).

Ensuite, il reste à affecter un champ texte de sortie à Out.textfield.

Out.as   
Out.textField = oTextDebug;

Vous pouvez également spécifier le nombre maximum de caractères à conserver.

Ainsi, les anciennes trace seront automatiquement effacées au fur et à mesure de l’ajout des nouveaux.

Out.as   
Out.maxLength = 1333;

Ensuite, de n’importe endroit de votre application, vous pouvez appeler Out.trace (valeur) pour effectuer un trace.

Cela affiche la valeur dans votre TextField en l’ajoutant à la fin de votre champ de texte.

Vous pouvez faire défiler le champ texte à la fin pour afficher le dernier trace.

Out.as   
Out.trace("Bonjour");
Out.trace("count:", count);// Possibilité de transmettre plusieurs paramètres

Adapter Out.as à vos projets

Enfin, vous pouvez personnaliser le trace en fonction de votre projet.

Il suffit de remplacer Out.handler par votre propre fonction.

Par exemple, pour effectuer un format sur votre texte de trace, modifier sa couleur, ajouter des informations supplémentaires…

Vous pouvez ajouter une combinaison de touches (ctrl+d) pour afficher / masquer le trace.

Le code ci-dessous permet d’afficher le trace, uniquement si le premier paramètre est 1.

Ainsi, vous pouvez utiliser une variable, pour activer ou non la sortie trace sur Out.as.

Out.as   
function log(...rest:Array):Boolean
{
  trace("logging : "+rest.join(","));
  // ... etc.
  // écrit dans le TextField seulement si le premier paramètre (ex. priorité debug) est > 1
  return rest[0] > 1; // renvoie false pour empêcher l'écriture dans Out.textField
}
Out.handler = log;

Exemple de personnalisation de Out.as

J’ai ajouté sur Out.as la gestion de l’appuie simultanée sur les touches Ctrl et D pour afficher ou masquer le TextField de Debug.

https://www.actionscript-facile.com/wp-content/uploads/2011/11/debug-simple.swf

Télécharger le code source de Out.as

Dans le fichier ci-dessous, le code source de l’exemple avec la classe Out.as modifiée.

Télécharger “Out.as Debug simple” ex-out-debug-simple.zip – Téléchargé 84 fois – 88 KB

Sources : Grant Skinner

Comment utiliser les polices embarquées en Flash ActionScript 3 avec FDT PowerFlasher ?

1 question

Ecrit le 19 juillet par Matthieu
Publié dans le(s) sujet(s) Cours AS3 |Editeur ActionScript

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.

https://www.actionscript-facile.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é 119 fois – 298 KB

Le 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 ?

3 questions

Ecrit le 9 mars par Matthieu
Publié dans le(s) sujet(s) ActionScript 3

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 🙂

https://www.actionscript-facile.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é 137 fois – 368 KB

Té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 ?

22 questions

Ecrit le 21 septembre par Matthieu
Publié dans le(s) sujet(s) Framework AS3 Facile

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, TextFormatFont, 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.

https://www.actionscript-facile.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é 562 fois – 74 KB

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.

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;
		}
 
	}
 
}
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;
		}
 
	}
 
}

at eleifend suscipit Curabitur dolor. ipsum mi, facilisis risus. ut