Flex RSL – Utilisation de RSL standards
Les applications Adobe Flex modulaires, qui utilisent des librairies ré-utilisables sont les meilleurs candidates à l'utilisation des RSL. Dans cet article, on va voir comment utiliser ces RSLs dans la pratique.
Il y a quatre étapes à suivre quand on veut utiliser les RSL:
- Créer une librairie de composants / classes
- Compiler l'application Flex pour qu'elle utilise la librairie de composant
- Optimiser le RSL, si besoin est
- Déployer l'application et le RSL
Création d'une librairie de composants
La première étape consiste à créer une librairie ré-utilisable et d'en faire un package pour qu'elle puisse être facilement redistribuée. Flex Builder 3 permet de créer facilement ces projets librairie. A partir de ce projet, le compilateur Flex va compiler un fichier SWC. Un fichier SWC est une archive qui contient des composants Flex et d'autres éléments (images, font, …). Si vous décompressez cette archive, vous trouverez deux fichiers:
- Un fichier SWF, souvent appelé library.swf
- Un fichier XML "manifest" appelé catalog.xml, qui contient la liste des composants inclus dans la librairie.
Pour commencer la création d'une librairie Flex, créez un nouveau projet de type Flex Library Project et pas Flex Project:

Une librairie SWC peut être compilée de plusieurs manières, soit en ligne de commande avec le compilateur "compc", soit par Flex Builder. Dans notre cas, on va laisser Flex Builder faire le travail.
Créez ou copiez ensuite les composants que vous voulez utiliser dans la librairie.
Lier les librairies Flex à des Projets Flex
Maintenant que notre librairie Flex est créée, on va la lier à l'application principale. Faîtes un clic droit sur le projet de l'application principale dans Flex Builder et sélectionnez l'option Flex Build Path. Vous verrez un panel "Library Path". Ce panel liste toutes les librairies du framework Adobe Flex (les applications AIR ont des librairies supplémentaires). Le framework et les librairies nécessaires doivent être liées à votre projet.
Pour fixer la méthode de "linkage", il faut modifier la valeur du "Framework linkage" dans la liste de choix:

Pour ajouter la librairie que vous venez de créer, cliquez sur "Add Project" et sélectionnez le projet que vous avez crée plus haut. Pour modifier le "linkage" de cette librairie, cliquez sur le "+" à côté du projet puis double-cliquez sur le "Link Type".
Vous avez ensuite le choix:
- RSLs
- Merged-in
- External
Une application Adobe Flex entreprise est typiquement composée de plusieurs projets Flex Builder. L'application principale doit être liée aux librairies qui sont absolument nécessaires pour l'affichage du premier écran. De manière optionnelle, vous pouvez inclure des librairies communes aux modules Flex qui pourraient être utilisés.
L'option Merged-in
L'option "Merged-in" va augmenter la taille du SWF de l'application (ou du module). Elle va augmenter car l'application va contenir les classes (seulement les classes nécessaires) de la librairie. Cela a un effet négatif sur les les applications qui vont créer des objets dynamiquement (non référencés à l'avance). Pour que ces objets soient disponibles, vous devez déclarer une variable de chaque type que vous voulez utiliser afin que les classes soient disponibles dans le SWF final.
Lors de la création d'un projet, vous devriez retirer les librairies par défaut que vous n'utiliserez pas. Par exemples, les librairies contenant les API d'automation en général et qtp.swc (qui permet le support de l'outil de test QTP de HP) ne sont pas nécessaires dans la plupart des projets. Même si Flex Builder va regarder si les classes de ces librairies sont utilisées ou non, lors d'un build, il n'aura pas à aller vérifier la présence des classes de l'automation par exemple.
Le SWC datavisualization.swc devrait aussi être retiré de l'application principale. En général, cette librairie devrait être chargée par des modules. Une application Flex Entreprise devrait consister en un petit noyau qui va charger des modules à la demande, et ce noyau de devrait pas avoir besoin du datavisualization.swc. Dans ce scénario, vous devriez lier le datavisualization.swc en tant que RSL. Seulement, prenons le cas dans lequel votre application charge 10 modules dont 3 utilisent les classes du Flex Charting situées dans le datavisualization.swc. Dans ce cas, le RSL datavisualization va être chargé 3 fois. Cela est vrai pour une application Flex normale mais vous pouvez optimiser le chargement de ces modules grâce à la technique décrite dans le document dont est issu cet article (voir en fin d'article).
L'option RSL
Pour notre exemple, il suffit de choisir "RSL" comme "Link Type":

Optimisation des RSLs
Un RSL peut être optimisé grâce à un outil nommé "optimizer", un exécutable disponible dans le Flex SDK. Cet optimizer réduit la taille du RSL en supprimant toutes les informations de debug qu'il peut contenir. C'est un peu l'équivalent d'un build "release" par rapport à un build "debug".
Voici la ligne de commande nécessaire pour optimiser un RSL (équivalent à une compilation avec debug=false):
optimizer -input pathTo/library.swf -output pathTo/output.swf
Déploiement de l'application et du RSL
Pour un déploiement standard, il suffit que l'application et le/les RSL soient situés sur le même serveur web. Il suffit d'uploader les deux fichiers sur le serveur.
This translation is used by permission of the publisher from *Enterprise Development with Flex*, ISBN 9780596154165, by Yakov Fain, Victor Rasputnis and Anatole Tartakovsky; USA publishing release date February 2010, by O’Reilly Media, Inc.
Articles similaires
- Flex Modules – Optimiser vos modules avec load-externs
- Flash Builder 4 – Refactoring (déplacement, renommage de classes / propriétés)
- Création d'Applications Flex – Utilsation des Runtime Shared Library (RSL) et Flex Builder
- Flex RSL – Utilisation des RSL du Framework Adobe Flex
- Flex Modules – Compilation de modules (Flex Builder et mxmlc)
Aucun trackbacks pour l'instant





