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

2oct/093

Flex Modules – Compilation de modules (Flex Builder et mxmlc)

Vous pouvez compiler des modules tout comme vous pouvez compiler des applications Flex. En ligne de commande en utilisant mxmlc, ou par Flex Builder. Le résultat est un fichier SWF que vous pourrez charger dans votre application. Vous ne pouvez pas charger un module SWF dans un Flash Player standalone par lui même ou le charger dans un navigateur, il doit être chargé par une application comme module.

Compilation de modules en ligne de commande (non-optimisés)

Compilez les modules comme des applications, avec la ligne de commande suivante:

mxmlc MyModule.mxml

Une fois que vous avez compilé ce module, vous pouvez en réduire sa taille en supprimant les dépendances commune avec l'application qui utilise le module (en utilisant load-externs, voir plus loin).

Comilation de modules avec Flex Builder

A partir de Flex Builder, vous avez deux manières de compiler les modules: soit en les regroupant avec l'application principale, soit en les mettant dans des projets séparés.

Compilation par FB si vous n'utilisez un projet unique

Si vous n'utilisez qu'un projet pour votre application et votre module, vous aurez les avantages suivants:

  • Un projet simple prend moins de mémoire que de multiples projets
  • Les modules sont automatiquement recompilés quand l'application est compilée

Par contre:

  • L'application et les modules partagent les mêmes paramètres de compilation (comme le library-path).
  • L'application et les modules doivent être dans le même répertoire source (ou dans un répertoire ajouté au source-path)
  • Vous ne pouvez pas compiler les modules de manière individuelle

Pour ajouter un module à une application Flex, suivez la simple manipulation à la fin de cet article sur les modules Flex. Pour réduire la taille de vos modules, vous devez l'optimiser pour un MXML application. Cela se passe dans la fenêtre des propriétés des modules, choisissez "Optimize for application" (par défaut).

Compilation par FB si vous utilisez de multiples projets

Vous pouvez en revanche créer un projet Flex ou ActionScript séparé pour chaque module. Cela vous donne un plus grand contrôle sur la manière par laquelle les modules sont compilés car chaque projet peut avoir ses propres options de compilation. Vous pouvez aussi choisir de compiler un module sans compiler l'application.

Cependant, cette approche vous oblige à compiler manuellement les modules avant de compiler votre application.

Pour vous faciliter la vie, vous pouvez rediriger la sortie (le SWF résultant) automatiquement vers votre projet principal lorsque le projet est compilé.

Pour cela allez dans les Properties du projet et dans la catégorie Flex Build Path, indiquer une valeur comme:

${DOCUMENTS}\MainProject\assets

Si vous êtes sous Mac, utilisez des slash et pas des backslash: ${DOCUMENTS}/MainProject/assets

Dans votre application principale, vous pourrez faire pointer la propriété "url" du ModuleLoader vers le SWF qui se trouvera dans le répertoire "assets". Désactivez aussi l'option "Generate HTML Wrapper File. En effet, vous avez seulement besoin du SWF, par d'un conteneur HTML.

Par défaut, les modules compilés dans des projets différents ne seront pas optimisé et seront très lourd. Pour réduire sa taille, vous pouvez l'optimiser pour une application comme on va le voir dans le prochain tutorial: Flex Modules – Réduire et optimiser vos modules avec load-externs.

Remplis sous: Flash Builder, Flex Builder, Modules || Taggé comme: Laisser un commentaire

Articles similaires

Commentaires (3) Trackbacks (0)
  1. Bonjour,
    Novice en Flex, j'ai installé FB3 hier et j'ai commencé à regarder comment tout ça se bidouillait.

    Ensuite j'ai installé un wamp et créé un projet flex/Php donc le tout enregistré dans le www de wamp.Pas de pb spécifique sur les rudiments avec le simple "Hello World" dans un mesage d'alerte…

    Mon pb, c'est que lorsque je teste, le fichier .mxml (racine de src) update bien, mais les fichiers .swf et .html dans le dossier "degun-bin" eux reste sur mon 1er programme lors de l'ouverture d'IE.

    J'ai regardé les chemin dans les propritées du projet, j'ai essayé de changer de dossier…rien à faire.

    J'ai regradé sur le net voir si quelqu'un avait eu le meme pb, mais j'ai pas encore trouvé..et c'est frustrant d'etre bloqué par une mise à jour partielle lol

    je continue à regarder…mais si une âme charitable avait déja résolu le pb chez lui…

    Merci d'avoir pris le temps de lire mon problème…en espérant faire de même pour d'autre lorsque j'aurai au moins pu afficher ma putain de page.
    A+ francois

  2. Bonjour et bienvenue,
    alors j'ai bien lu le message, d'après ce que j'ai compris, vous modifiez votre fichier MXML principal mais la compilation en SWF ne se fait pas (le dossier bin-debug ne contient pas le nouveau SWF compilé). Avez-vous une barre de chargement en bas à droite de FB3 quand vous sauvegarder votre MXML vous indiquant que FB3 compile le projet? Si non, alors c'est que FB3 n'est pas configuré en "Build Automatically". Pour corriger cela, il faut cocher "Build Automatically" dans le menu Project de FB3.
    Si la compilation se fait bien mais que le dossier bin-debug n'est pas à jour, c'est qu'il y a une autre souci. Si c'est le cas, renvoyez une message et on fera un diagnostic plus poussé :P

    Fabien

  3. Hello,

    Pour compiler les modules sous Flash builder 4 :

    - clic droit sur le projet
    - propriétés
    - modules flex, puis ajouter


Leave a comment

(required)

Aucun trackbacks pour l'instant