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

29juin/102

Flex 4 – Pointez vers des RSLs en dehors de votre projet

Framework RSL’s in Flex Builder vs Flash Builder, Performance and Important Info

Vous le savez peut-être, avec Flash Builder 4, le framework est exporté en RSL par défaut. Cela signifie que le code du framework Flex ne se trouve pas dans votre application mais dans un fichier .SWZ séparé. Si vous ne connaissiez pas ce fonctionnement, voici un article sur les RSLs avec Flex Builder 3, toujours valable:

Flex RSL – Utilisation des RSL du Framework Adobe Flex

Vous l'avez compris, les RSLs ont un intérêt certain si vous avez plusieurs applications Flex.

A la compilation de projets Flex dans Flash Builder 4

Il est important de comprendre maintenant ce qui se passe quand un projet est "build" dans Flash Builder 4. La configuration par défaut fait que le compilateur va créer une copie de chaque RSL (fichier .SWZ) dans le répertoire de build. Ce qui signifie que lorsque vous faites une Release Build, vous aurez une copie de chacun des 6 .SWZ (entre 60 et 620Ko).

Voici la liste de ces SWZ (les numéros de builds pouvant varier):

  • framework_4.0.0.14159.swz
  • osmf_flex.4.0.0.13495.swz
  • rpc_4.0.0.14159.swz
  • spark_4.0.0.14159.swz
  • sparkskins_4.0.0.14159.swz
  • textLayout_1.0.0.595.swz

Pour une seule et même application, cela ne vous posera pas de problème mais lorsque vous avez de très nombreuses applications, cela va démultiplier le nombre de fichier inutilement. Par exemple, c'est le problème soulevé par ce développeur de Tour de Flex (des centaines d'applications). Ou imaginez même que vous avez un blog consacré à Flex, qui va contenir de plus en plus d'exemples Flex 4: l'auteur va-t-il envoyer les fichiers RSLs à chaque fois par FTP :P .

Modifier le chemin par défaut vers les RSLs

Heureusement, une solution simple existe comme le précise cet article:

Framework RSL’s in Flex Builder vs Flash Builder, Performance and Important Info

Il suffit pour cela d'aller modifier la configuration par défaut de votre compilateur pour pointer vers un emplacement différent (URL unique). Il y a 2 tags XML qui précisent l'emplacement des RSLs:

  • Le premier est celui vers les RSLs hébergés par les serveurs Adobe. Laissez-là telle qu'elle est
  • Le second est le '"failover", celui qui va être pris en compte si les serveurs Adobe ne sont pas accessible pour N raisons. C'est ce chemin que vous devrez modifier.


Pour modifier le fichier de configuration par défaut, rendez vous dans le répertoire dans lequel se trouve le SDK Flex que vous utilisez.

Sous Windows 7 par exemple, il se trouve à l'emplacement: C:\Program Files (x86)\Adobe\Adobe Flash Builder 4\sdks\4.0.0\frameworks. Sur un Mac, ce sera plutôt /Applications/Adobe Flash Builder 4/sdks/4.0.0/frameworks/flex-config.xml

Vous y trouverez le fichier flex-config.xml. Editez ce fichier et trouvez le noeud XML suivant:

<!-- Spark SWC-->
<runtime-shared-library-path>
 <path-element>libs/spark.swc</path-element>
 <rsl-url>http://fpdownload.adobe.com/pub/swz/flex/4.0.0.14159/spark_4.0.0.14159.swz</rsl-url>
 <policy-file-url>http://fpdownload.adobe.com/pub/swz/crossdomain.xml</policy-file-url>
 <rsl-url>spark_4.0.0.14159.swz</rsl-url>
 <policy-file-url></policy-file-url>
</runtime-shared-library-path>

Avec ce paramétrage par défaut, les fichiers SWZ seront copiés dans le répertoire bin-release.

Modifier donc les 6 noeuds XML sous la forme:

<!-- Spark SWC-->
 <runtime-shared-library-path>
 <path-element>libs/spark.swc</path-element>
 <rsl-url>http://fpdownload.adobe.com/pub/swz/flex/4.0.0.14159/spark_4.0.0.14159.swz</rsl-url>
 <policy-file-url>http://fpdownload.adobe.com/pub/swz/crossdomain.xml</policy-file-url>
 <rsl-url>http://monserver/RSL/spark_4.0.0.14159.swz</rsl-url>
 <policy-file-url></policy-file-url>
</runtime-shared-library-path>

Attention, pour que Flash Builder prenne en compte ces changements, vous devez le redémarrer

Il y a aussi une option dans la boîte de propriétés de votre projet (Build Path > Library) pour indiquer à Flash Builder 4 qu'il doit utiliser des RSLs locaux lors du debugging. Si cette case est coché, Flash Builder va copier les 6 RSLs (mais au format SWF) dans le répertoire bin-debug

Articles similaires

Commentaires (2) Trackbacks (0)
  1. Sûr que ça réduit considérablement la taille du projet, mais imaginons que sur un même serveur j'héberge des applications compilées avec différentes version du framework, quelle solution préconises-tu ?

    Avoir un répertoire par version du framework et pointer sur le bon ?

  2. Salut,
    aucune préco en particulier à ce niveau-là. Simplement ce que tu trouves le plus pratique entre une foultitude de dossier et une foultitude de fichiers ^^

    Fabien


Leave a comment

(required)

Aucun trackbacks pour l'instant