{"id":1359,"date":"2010-02-10T06:48:50","date_gmt":"2010-02-10T05:48:50","guid":{"rendered":"http:\/\/flaven.fr\/?p=1359"},"modified":"2013-09-25T10:11:57","modified_gmt":"2013-09-25T08:11:57","slug":"flex-theme-creer-et-compiler-des-themes-sous-flex","status":"publish","type":"post","link":"https:\/\/flaven.fr\/2010\/02\/flex-theme-creer-et-compiler-des-themes-sous-flex\/","title":{"rendered":"Flex, Th\u00e8me &#8211; Cr\u00e9er et compiler des th\u00e8mes sous Flex"},"content":{"rendered":"<p><!-- Flex, Th\u00e8me - Cr\u00e9er et compiler des th\u00e8mes sous Flex  --><br \/>\n<!--  Flex, Adobe, Th\u00e8me, SWC, mxml, Interface, Skin --><\/p>\n<p>On souhaite cr\u00e9er un fichier de th\u00e8me pour une application faite sous Flex, c&#8217;est \u00e0 dire un fichier <code>.swc<\/code>. On va faire les essais de compilation sous Flex 3 et sur un mac. <!--more-->Il vous faut donc Flex 3 et un acc\u00e8s au terminal. Pour se faire on va cr\u00e9er une application sommaire de s\u00e9lection parmi un <code>array<\/code> compos\u00e9 par des pr\u00e9sidents am\u00e9ricains \u00e0 laquelle on va rajouter un th\u00e8me compil\u00e9 <code>SmokeTheme.swc<\/code>.<\/p>\n<h4>L&#8217;application : la Flex&#8217;O selection for US president<\/h4>\n<p><b>Le code de <code>Compile_SWC_2.mxml<\/code> \u00e9dit\u00e9 dans Flex<\/b><br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/flaven.fr\/wp-content\/uploads\/2010\/02\/flex_build_a_swc_1.jpg\" alt=\"Flex, Th\u00e8me - Cr\u00e9er et compiler des th\u00e8mes sous Flex\" width=\"500\" height=\"265\" \/><\/p>\n<p><b>Notre application avec l&#8217;habillage (skin) par d\u00e9faut<\/b><br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/flaven.fr\/wp-content\/uploads\/2010\/02\/flex_build_a_swc_2.jpg\" alt=\"Flex, Th\u00e8me - Cr\u00e9er et compiler des th\u00e8mes sous Flex\" width=\"500\" height=\"265\" \/><\/p>\n<p><b>Le fichier source <code>Compile_SWC_2.mxml<\/code><\/b><\/p>\n<pre lang=\"xml\" escaped=\"true\">\r\n\t&lt;?xml version=\"1.0\" encoding=\"utf-8\"?&gt;\r\n\t&lt;mx:Application xmlns:mx=\"http:\/\/www.adobe.com\/2006\/mxml\" layout=\"vertical\"&gt;\r\n\t&lt;mx:Script&gt;\r\n\t\t\t&lt;![CDATA[\r\n\t\t\t\t[Bindable] private var dp:Array =\r\n\t\t\t\t[\r\n\r\n\t\t\t\t\/* US presidents *\/\r\n\t{label:\"George Washington\", data:0},\r\n\t{label:\"John F. Kennedy\", data:1},\r\n\t{label:\"Lyndon B. Johnson\", data:2},\r\n\t{label:\"Richard M. Nixon\", data:3},\r\n\t{label:\"Gerald R. Ford\", data:4},\r\n\t{label:\"James E. \"Jimmy\" Carter\", data:5},\r\n\t{label:\"Ronald W. Reagan\", data:6},\r\n\t{label:\"William J. \"Bill\" Clinton\", data:7},\r\n\t{label:\"George W. Bush\", data:8},\r\n\t{label:\"Barack Obama\", data:9}\r\n\r\n\t\t\t\t];\r\n\r\n\t\t\t\tprivate function ClickHandler ():void {\r\n\t\t\t\t\tmessageField.text = \"Vous avez choisi =&gt; \" + nameCB.selectedLabel + \" \";\r\n\t\t\t\t}\r\n\t\t\t]]&gt;\r\n\t\t&lt;\/mx:Script&gt;\r\n\r\n\t\t&lt;mx:Panel title=\"Faites un choix parmi ces pr\u00e9sidents am\u00e9ricains :\" width=\"50%\" height=\"50%\" paddingLeft=\"10\" paddingTop=\"10\"&gt;\r\n\t\t\t&lt;mx:VBox width=\"100%\"&gt;\r\n\t\t\t\t&lt;mx:HBox width=\"100%\"&gt;\r\n\t\t\t\t\t&lt;mx:Text text=\"Choisir :\" \/&gt;\r\n\t\t\t\t\t&lt;mx:ComboBox id=\"nameCB\" dataProvider=\"{dp}\"\/&gt;\r\n\t\t\t\t\t&lt;mx:Button label=\"Selectionner\" click=\"ClickHandler();\"\/&gt;\r\n\t\t\t\t&lt;\/mx:HBox&gt;\r\n\t\t\t\t&lt;mx:Text id=\"messageField\" \/&gt;\r\n\t\t\t\t&lt;\/mx:VBox&gt;\r\n\t\t&lt;\/mx:Panel&gt;\r\n\t&lt;\/mx:Application&gt;\r\n\r\n\t\r\n<\/pre>\n<h4>Compil \u00e0 la &#8220;main&#8221;<\/h4>\n<p>Jusqu&#8217;\u00e0 pr\u00e9sent rien d&#8217;extraordinaire, on vient de faire une application en Flex. On va maintenant chercher \u00e0 corser le tout en cherchant \u00e0 compiler manuellement un th\u00e8me pour en faire un fichier <code>.swc<\/code> et l&#8217;adjoindre \u00e0 notre application.<br \/>\nDans un tout premier temps, il va falloir localiser le r\u00e9pertoire, qui contient l&#8217;utilitaire n\u00e9cessaire \u00e0 la compilation.<\/p>\n<p>Premier probl\u00e8me, acc\u00e9der \u00e0 l&#8217;utilitaire de compilation de Flex. Il faut chercher le chemin vers le r\u00e9pertoire <code>bin<\/code> dans Flex et lancer la commande qui va bien pour acc\u00e9der \u00e0 l&#8217;utilitaire.<br \/>\nSous mac, l&#8217;utilitaire est dans <code>\/Applications\/Adobe Flex Builder 3\/sdks\/3.2.0\/bin\/<\/code>. Dans le terminal cette commande vous emm\u00e8ne direct dans le r\u00e9pertoire et lance le terminal comme il faut <code>bin<\/code> du Flex SDK <code>cd \/Applications\/Adobe Flex Builder 3\/sdks\/3.2.0\/bin\/fcsh<\/code><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/flaven.fr\/wp-content\/uploads\/2010\/02\/flex_build_a_swc_3.jpg\" alt=\"Flex, Th\u00e8me - Cr\u00e9er et compiler des th\u00e8mes sous Flex\" width=\"500\" height=\"265\" \/><\/p>\n<p><b>L&#8217;aide contextuelle au compiler de Flex<\/b><\/p>\n<pre lang=\"bash\">\r\n(fcsh) -help \r\nList of fcsh commands:\r\nmxmlc arg1 arg2 ...      full compilation and optimization; return a target id\r\ncompc arg1 arg2 ...      full SWC compilation\r\ncompile id               incremental compilation\r\nclear [id]               clear target(s)\r\ninfo [id]                display compile target info\r\nquit                     quit\r\n<\/pre>\n<p>Il s&#8217;agit de la commande pour compiler une feuille e style en fichier th\u00e8me <code>.swc<\/code><\/p>\n<pre lang=\"bash\">\r\ncompc -include-file my_style_dashboard.css \/Users\/nom-d-utilisateur\/le_chemin_vers_la_css\/my_style_dashboard.css -o \/Users\/nom-d-utilisateur\/le_chemin_vers_la_swc\/my_style_dashboard.swc\r\n<\/pre>\n<p>Vous pouvez aussi utiliser via une ligne de commande le compiler <code>mxmlc<\/code> pour convertir vos fichiers <code>.mxml<\/code> en fichiers <code>.swc<\/code><\/p>\n<pre lang=\"bash\">\r\nmxmlc \/Users\/nom-d-utilisateur\/le_chemin_vers_la_mxml\/MonApplication.mxml -o \/Users\/nom-d-utilisateur\/le_chemin_vers_la_mxml\/MonApplication.swc\r\n<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/flaven.fr\/wp-content\/uploads\/2010\/02\/flex_build_a_swc_5.jpg\" alt=\"Flex, Th\u00e8me - Cr\u00e9er et compiler des th\u00e8mes sous Flex\" width=\"500\" height=\"265\" \/><\/p>\n<p><b>Une erreur possible pour la compilation d&#8217;un mxml<\/b><\/p>\n<p>Il vous faut \u00e9videmment donner le chemin (<code>path<\/code>) de l\u00e0 o\u00f9 se trouve les fichiers du th\u00e8me.<\/p>\n<pre lang=\"bash\">\r\nmxmlc MonApplication_1.mxml -o MonApplication_1.swc\r\n<\/pre>\n<p><em>Le message d&#8217;erreur qui va s&#8217;afficher dans la mesure o\u00f9 le fichier <code>MonApplication_1.mxml<\/code> est introuvable.<\/em><code><br \/>\nLoading configuration file \/Applications\/Adobe Flex Builder 3\/sdks\/3.2.0\/frameworks\/Flex-config.xml<br \/>\nError: unable to open 'MonApplication_1.mxml'<br \/>\n<\/code><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/flaven.fr\/wp-content\/uploads\/2010\/02\/flex_build_a_swc_4.jpg\" alt=\"Flex, Th\u00e8me - Cr\u00e9er et compiler des th\u00e8mes sous Flex\" width=\"500\" height=\"265\" \/><\/p>\n<p><b>La ligne de commande pour une bonne compilation d&#8217;un mxml<\/b><\/p>\n<pre lang=\"bash\">\r\nmxmlc \/Users\/nom-d-utilisateur\/le_chemin_vers_la_mxml\/MonApplication_1.mxml -o \/Users\/nom-d-utilisateur\/le_chemin_vers_la_mxml\/MonApplication_1.swc\r\n<\/pre>\n<p><b>Une fois que vous maitrisez les principales lignes de commande pour utiliser le compilateur, on peut se livrer \u00e0 l&#8217;objet v\u00e9ritable de l&#8217;article &#8220;Cr\u00e9er un fichier de th\u00e8me en <code>.swc<\/code>&#8220;<\/b><\/p>\n<h4>Compiler un th\u00e8me compil\u00e9 ou Cr\u00e9er un fichier <code>.swc<\/code><\/h4>\n<p>On va voir v\u00e9ritablement comment on peut \u00e0 partir d&#8217;un th\u00e8me complet et produire un fichier <code>.swc<\/code>. Pour cela, on va se servir des th\u00e8mes livr\u00e9s avec l&#8217;installation par d\u00e9faut de Flex. L&#8217;ensemble visible sur un mac dans le r\u00e9pertoire suivant : <code>\/Applications\/Adobe Flex Builder 3\/sdks\/3.2.0\/frameworks\/<\/code><\/p>\n<p><b>On va se servir du th\u00e8me <code>Smoke<\/code> comme base de d\u00e9part pour cr\u00e9er note <code>.swc<\/code>. Ce th\u00e8me se compose d&#8217;un r\u00e9pertoire <code>Smoke<\/code> contenant 2 fichiers : <code>Smoke.css<\/code> et <code>moke_bg.jpg<\/code>. Les deux fichiers compil\u00e9s vont former le fichier de th\u00e8me Flex nomm\u00e9 <code>SmokeTheme.swc<\/code><\/b><\/p>\n<pre lang=\"bash\">\r\ncompc -include-file \/Users\/nom-d-utilisateur\/le_chemin_vers_le_swc\/Smoke\/Smoke.css \/Users\/nom-d-utilisateur\/le_chemin_vers_le_swc\/Smoke\/Smoke.css -include-file \/Users\/nom-d-utilisateur\/le_chemin_vers_le_swc\/Smoke\/Smoke\/smoke_bg.jpg \/Users\/nom-d-utilisateur\/le_chemin_vers_le_swc\/Smoke\/Smoke\/smoke_bg.jpg -o \/Users\/nom-d-utilisateur\/le_chemin_vers_le_swc\/SmokeTheme.swc\r\n<\/pre>\n<h4>Associer un <code>.swc<\/code> \u00e0 une application Flex<\/h4>\n<p>Il vous faut cr\u00e9er le fichier <code>swc<\/code> selon la proc\u00e9dure d\u00e9crite ci-dessus. Ensuite, vous devez ajouter le fichier <code>.swc<\/code> \u00e0 votre application, puis entrer la ligne de commande pour joindre le th\u00e8me \u00e0 la publication de votre application. Il ne vous reste qu&#8217;\u00e0 publier votre application en lan\u00e7ant le compiler via la proc\u00e9dure normale<\/p>\n<p><b>Ajouter le fichier <code>SmokeTheme.swc<\/code> \u00e0 l&#8217;application<\/b><br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/flaven.fr\/wp-content\/uploads\/2010\/02\/flex_build_a_swc_6.jpg\" alt=\"Flex, Th\u00e8me - Cr\u00e9er et compiler des th\u00e8mes sous Flex\" width=\"500\" height=\"265\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/flaven.fr\/wp-content\/uploads\/2010\/02\/flex_build_a_swc_7.jpg\" alt=\"Flex, Th\u00e8me - Cr\u00e9er et compiler des th\u00e8mes sous Flex\" width=\"500\" height=\"265\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/flaven.fr\/wp-content\/uploads\/2010\/02\/flex_build_a_swc_8.jpg\" alt=\"Flex, Th\u00e8me - Cr\u00e9er et compiler des th\u00e8mes sous Flex\" width=\"500\" height=\"265\" \/><\/p>\n<p><b>Modifier les informations du Flex compiler avec l&#8217;inclusion du th\u00e8me <code>SmokeTheme.swc<\/code> \u00e0 l&#8217;application<\/b><br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/flaven.fr\/wp-content\/uploads\/2010\/02\/flex_build_a_swc_9.jpg\" alt=\"Flex, Th\u00e8me - Cr\u00e9er et compiler des th\u00e8mes sous Flex\" width=\"500\" height=\"265\" \/><\/p>\n<p><b>Joindre le th\u00e8me \u00e0 l&#8217;application se fait \u00e0 l&#8217;aide de cette commande, <code>-locale en_US -theme \/Users\/nom-d-utilisateur\/le_chemin_vers_le_swc\/SmokeTheme.swc<\/code><br \/>\n<\/b><br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/flaven.fr\/wp-content\/uploads\/2010\/02\/flex_build_a_swc_10.jpg\" alt=\"Flex, Th\u00e8me - Cr\u00e9er et compiler des th\u00e8mes sous Flex\" width=\"500\" height=\"265\" \/><\/p>\n<p><b>L&#8217;application publi\u00e9e avec le th\u00e8me compil\u00e9 <code>SmokeTheme.swc<\/code><br \/>\n<\/b><br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/flaven.fr\/wp-content\/uploads\/2010\/02\/flex_build_a_swc_11.jpg\" alt=\"Flex, Th\u00e8me - Cr\u00e9er et compiler des th\u00e8mes sous Flex\" width=\"500\" height=\"265\" \/><\/p>\n<p><b>Conclusion : Si vous connaissez un tant soit peu l&#8217;int\u00e9gration notamment la r\u00e9daction des CSS, vous pouvez produire des &#8220;skins&#8221; pour des applications au m\u00eame titre que des th\u00e8mes Drupal ou WordPress.<\/b><\/p>\n<h2>En savoir plus<\/h2>\n<ul>\n<li>Utiliser le compiler <code>compc<\/code> pour compiler des fichiers <code>.swc<\/code> \/ Using compc, the component compiler<br \/>\n\t<a href=\"http:\/\/livedocs.adobe.com\/Flex\/3\/html\/help.html?content=compilers_22.html#250507\" target=\"_blank\">http:\/\/livedocs.adobe.com\/Flex\/3\/html\/help.html?content=compilers_22.html#250507<\/a><\/li>\n<li>Cr\u00e9er et \u00e9tendre des composants de Flex 3 \/ Creating and Extending Flex 3 Components<br \/>\n\t<a href=\"http:\/\/livedocs.adobe.com\/Flex\/3\/html\/help.html?content=Part4_CreateComps_1.html\" target=\"_blank\">http:\/\/livedocs.adobe.com\/Flex\/3\/html\/help.html?content=Part4_CreateComps_1.html<\/a><\/li>\n<li>Une introduction \u00e0 la cr\u00e9ation de composants Flex dont les fichiers <code>.swc<\/code> \/ Flex Quick Start: Building custom components<br \/>\n\t<a href=\"https:\/\/www.adobe.com\/devnet\/Flex\/quickstart\/deploying_components\/\" target=\"_blank\">https:\/\/www.adobe.com\/devnet\/Flex\/quickstart\/deploying_components\/<\/a><\/li>\n<li>Un article sur le design des skins sous Flex 3 \/ Designing Flex 3 skins and styles using Creative Suite 3 and Flex Builder 3<br \/>\n\t<a href=\"http:\/\/groups.adobe.com\/resources\/d17e72cf15\/summary\" target=\"_blank\">http:\/\/www.adobe.com\/devnet\/Flex\/articles\/skins_styles_04.html<\/a><\/li>\n<li>La librairie de Skin pour Flex du site Adobe.com<br \/>\n\t<a href=\"http:\/\/groups.adobe.com\/resources\/d17e72cf15\/summary\" target=\"_blank\">http:\/\/groups.adobe.com\/resources\/d17e72cf15\/summary<\/a><\/li>\n<li>Un script en Ruby pour compiler un fichier FXP en SWC \/ Compiling FXP-&gt;SWC, a Catalyst workflow<br \/>\n\t<a href=\"http:\/\/www.rogue-development.com\/blog2\/2009\/06\/compiling-fxp-swc-a-catalyst-workflow\/\" target=\"_blank\">\thttp:\/\/www.rogue-development.com\/blog2\/2009\/06\/compiling-fxp-swc-a-catalyst-workflow\/<\/a><\/li>\n<li>Une m\u00e9thode de compilation de fichier AS \u00e0 l&#8217;aide de Flex SDK \/ Compile AS files with Flex SDK<br \/>\n\t<a href=\"http:\/\/ubacoda.com\/?p=13\" target=\"_blank\">http:\/\/ubacoda.com\/?p=13<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>On souhaite cr\u00e9er un fichier de th\u00e8me pour une application faite sous Flex, c&#8217;est \u00e0 dire un fichier .swc. On va faire les essais de&hellip; <\/p>\n<p class=\"text-center\"><a href=\"https:\/\/flaven.fr\/2010\/02\/flex-theme-creer-et-compiler-des-themes-sous-flex\/\" class=\"more-link\">Continue reading &rarr; <span class=\"screen-reader-text\">Flex, Th\u00e8me &#8211; Cr\u00e9er et compiler des th\u00e8mes sous Flex<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":9451,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"bf_ai_meta_description":"Cr\u00e9er et compiler des th\u00e8mes sous Flex 3. Utilisez Flex 3 et le terminal Mac pour compiler SmokeTheme.swc et habiller une application de s\u00e9lection de pr\u00e9sidents.","bf_ai_og_title":"","footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[3444,3447,3448,3449,3451,3435],"tags":[299,2228,300,169,301,302,126],"class_list":["post-1359","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-programming-databases","category-technology-trends","category-tools-productivity","category-tutorials-how-to","category-web-design-front-end","category-web-development","tag-adobe","tag-flex","tag-interface","tag-mxml","tag-skin","tag-swc","tag-theme"],"jetpack_publicize_connections":[],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p3Vuhl-lV","jetpack_featured_media_url":"https:\/\/flaven.fr\/wp-content\/uploads\/2010\/05\/flex_generic_g_bf.jpg","_links":{"self":[{"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/posts\/1359","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/comments?post=1359"}],"version-history":[{"count":1,"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/posts\/1359\/revisions"}],"predecessor-version":[{"id":9475,"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/posts\/1359\/revisions\/9475"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/media\/9451"}],"wp:attachment":[{"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/media?parent=1359"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/categories?post=1359"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/tags?post=1359"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}