Apache Adobe Flex TutorialTutoriaux Adobe Flex & AIR en Français

31mai/087

Flex CSS: Modifier les CSS à l'exécution (Runtime CSS)

Dans Flex 2.0.1 ou supérieur, vous pouvez utiliser les CSS à l'exécution. Lorsque vous utilisez les CSS directement dans votre application, ceux-ci sont intégrés au moment de la compilation. On va maintenant voir comment charger et appliquer de nouvelles feuilles de style CSS à l'exécution, c'est à dire après le chargement de l'application Flex.

Puisque les styles Flex requièrent parfois des éléments graphiques, des skins, des classes ou des polices d'écriture, les CSS utilisés à l'exécution doivent être précompilés en SWF. Quand vous utilisez Flex 2.0.1, vous pouvez utiliser le compilateur mxmlc pour compiler un fichier CSS en fichier SWF qui inclut tous les éléments graphiques. Pour compiler un fichier CSS, passez simplement le chemin du fichier comme seul argument du compilateur comme dans l'exemple suivant:

mxmlc styles.css

Vous pouvez aussi les compiler directement dans Flex Builer en faisant Clic Droit sur le fichier>Compile CSS to SWF

29mai/089

Flex Theme: Créer un thème Flex (SWC)

Pour utiliser un thème, il vous faut déjà avoir crée un thème Flex. Un thème doit contenir au moins un fichier CSS, et certainement des éléments graphiques comme des images ou des skins AS3. Un thème doit être précompilé en un fichier SWC. Vous pouvez compiler un SWC en utilisant compc, le compilateur en ligne de commande pour les composants. Lorsque vous compilez un thème, vous devez spécifier l'option "-include-file" pour chaque fichier CSS ou élément graphique que vous voulez ajouter au SWC. L'option "-include-file" requiert 2 paramètres: le nom par lequel vous référencez le fichier et le chemin du fichier. Voici un exemple:

compc -include-file corporate_styles.css ../assets/themes/corporate.css -include-file background.jpg ../assets/themes/background.jpg -o corporate.swc

Si vous voulez ajouter une classe (skin) au thème, vous pouvez utiliser l'option "-include-classes". Cette option permet de spécifier une ou plusieurs classses (nom complet, avec le package) dans une liste séparée par un espace:

compc -include-file corporate_styles.css ../assets/themes/corporate.css -include-classes com.company.styles.ButtonSkin com.company.styles.ToolTipSkin

Comme vous pouvez le voir, même en faisant l'inclusion de deux fichiers ou classes, la ligne de commande commence à être longue. Ajouter de nouveaux fichiers augmenterai le problème. Une solution plus élégante est d'utiliser le fichier de configuration Flex.

29mai/080

Flex Preloader: Créer un Preloader personnalisé

Par défaut, toutes les applications Flex utilisent un preloader standard avec une barre de progression (progress bar) pendant que l'application elle-même se télécharge. Le chargement standard comprend tous les aspects du préchargement, y compris les shared libraries, les polices, et toutes les classes utilisées dans les modules. Enfin, il s'occupe de l'initialisation de l'application Flex.

Si vous créez une application RIA pour un certain client, tous les détails compteront. La première impression est la meilleure et la première chose que les personnes voient dans une application Flex est le preloader. Si vous le voulez, vous pouvez créer un preloader personnalisé. C'est possible et plutôt simple à effectuer.

Il y a deux grandes étapes:

  1. Créer une sous-classe de mx.preloaders.DownloadProgressBar, ou une sous-classe de Sprite et implémenter l'interface mx.preloaders.IPreloaderDisplay.
  2. Fixer la propriété "preloader" de l'objet Application vers la classe de l'étape précédente
25mai/080

Flex Skin: Appliquer une Skin sur les ToolTip

Vous pouvez skinner les tool tip exactement comme vous le feriez pour n'importe quel composant (de manière graphique ou codée en AS3). Fixez simplement la valeur du sélecteur de type ToolTip pour le paramètre borderSkin pour pouvoir changer son apparence.

L'exemple suivant montre comment utiliser une ProgrammaticSkin pour les tooltips:

package {

	import mx.skins.ProgrammaticSkin;
	import flash.filters.DropShadowFilter;

	public class ToolTipSkin extends ProgrammaticSkin {
		public function ToolTipSkin(){}

		override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void{
			graphics.clear();
			graphics.lineStyle(0, 0, 0);
			graphics.beginFill(0xFFFFFF, .8);
			graphics.drawRoundRectComplex(0, 0, unscaledWidth, unscaledHeight, 0, 10, 10, 10);
			graphics.endFill();
			filters = [new DropShadowFilter()];
		}
	}
}
25mai/082

Flex Skin: Skinner des composants en ActionScript, Programmatic Skinning

Coder des Skins est bien plus complexe que d'utiliser des skins graphiques. Cependant, l'utilisation de skins codées en AS3 donne de nombreux avantages. Vous aurez plus de contrôle car vous pouvez répondre à tout ce qui touche à la skin à l'exécution, tels que les changements d'état ou un redimensionnement (scale). Puisque les skins programmées utilisent du code plutôt que des images, vous aurez des fichiers plus petits que pour l'équivalent graphique. De plus, le programmatic skinning permet d'utiliser des fonctionnalités bas-niveau telles que les filtres (display object filter): drop shadow, bevel, glow …

Lorsque vous voulez créer une skin en AS3, vous devez créer une sous-classe d'une des classes suivantes:

  • mx.skins.ProgrammaticSkin: La plupart des skins sont des sous-classes de ProgrammaticSkin, et cette classe est appropriée pour pratiquement toutes les skins
  • mx.skins.Border: La classe Border est une sous-classe de ProgrammaticSkin, et elle ajoute le support de borderMetrics pour les skins qui ont des bordures.
  • mx.skins.RectangularBorder: Cette classe est une sous-classe de Border, et elle ajoute le support de backgroundImage