<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>netinfluence&#039;s blog &#187; flex</title>
	<atom:link href="http://blog.netinfluence.com/tag/flex/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.netinfluence.com</link>
	<description>le blog de l&#039;agence netinfluence</description>
	<lastBuildDate>Fri, 13 Jan 2012 10:39:44 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.4</generator>
		<item>
		<title>Lancement d’alcooquizz</title>
		<link>http://blog.netinfluence.com/2010/07/15/lancement-dalcooquizz/</link>
		<comments>http://blog.netinfluence.com/2010/07/15/lancement-dalcooquizz/#comments</comments>
		<pubDate>Thu, 15 Jul 2010 07:11:24 +0000</pubDate>
		<dc:creator>sandrine</dc:creator>
				<category><![CDATA[news]]></category>
		<category><![CDATA[Branding]]></category>
		<category><![CDATA[CHUV]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[Développement]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[marketing]]></category>
		<category><![CDATA[netinfluence]]></category>
		<category><![CDATA[typo3]]></category>

		<guid isPermaLink="false">http://blog.netinfluence.ch/?p=2055</guid>
		<description><![CDATA[Nous avons été mandaté par le CHUV et son département d&#8217;alcoologie pour réaliser un site de prévention et d&#8217;information sur les risques liés à l&#8217;alcool nommé alcooquizz.ch.  Le site fonctionne comme un questionnaire qui permet à chaque personne d&#8217;évaluer sa situation par rapport à l&#8217;alcool.  Le diagnostique, à la fois personnalisé et anonyme, fournit des informations précises ainsi que des recommandations adaptées précisément à la situation de chacun. Annoncé aujourd&#8217;hui par une conférence de presse, le site va faire l&#8217;objet d&#8217;une plus vaste campagne de communication, relayée notamment durant les divers festivals de l&#8217;été afin de sensibiliser sans stigmatiser ni culpabiliser. La particularité de ce projet a été pour nous de bâtir tout un concept qui permette une certaine neutralité. [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_2062" class="wp-caption alignright" style="width: 310px"><a rel="attachment wp-att-2062" href="http://blog.netinfluence.com/2010/07/15/lancement-dalcooquizz/"><img class="size-medium wp-image-2062  " title="Alcooquizz - le site du CHUV  pour l'alcoologie" src="http://blog.netinfluence.ch/wp-content/uploads/2010/07/Capture-d’écran-2010-07-15-à-08.44.44-300x196.png" alt="Site réalisé par netinfluence" width="300" height="196" /></a><p class="wp-caption-text">Homepage d&#39;alcooquizz</p></div>
<p>Nous avons été mandaté par le CHUV et son département d&#8217;alcoologie pour réaliser un site de prévention et d&#8217;information sur les risques liés à l&#8217;alcool nommé <a title="voir le site : alcooquizz" href="http://www.alcooquizz.ch/" target="_blank">alcooquizz.ch</a>.  Le site fonctionne comme un questionnaire qui permet à chaque personne d&#8217;évaluer sa situation par rapport à l&#8217;alcool.  Le diagnostique, à la fois personnalisé et anonyme, fournit des informations précises ainsi que des recommandations adaptées précisément à la situation de chacun.</p>
<p>Annoncé aujourd&#8217;hui par une conférence de presse, le site va faire l&#8217;objet d&#8217;une plus vaste campagne de communication, relayée notamment durant les divers festivals de l&#8217;été afin de sensibiliser sans stigmatiser ni culpabiliser.</p>
<p>La particularité de ce projet a été pour nous de bâtir tout un concept qui permette une certaine neutralité. Il fallait pouvoir parler d&#8217;alcool sans culpabiliser, être agréable avec un style un peu ludique mais pas trop non plus et sensibiliser et informer sans non plus provoquer de malaise.  Bref, créer une prise de conscience et permettre peut être de nouveaux réflexes par rapport à l&#8217;alcool car on se rend compte que beaucoup d&#8217;idées reçues existent sur le sujet mais que finalement les gens savent très peu.</p>
<div id="attachment_2063" class="wp-caption alignright" style="width: 310px"><a href="http://www.alcooquizz.ch/fr/alcoopedia/"><img class="size-medium wp-image-2063 " title="Alcoopedia - Base de  connaissance du site" src="http://blog.netinfluence.ch/wp-content/uploads/2010/07/Capture-d’écran-2010-07-15-à-09.16.33-300x198.png" alt="" width="300" height="198" /></a><p class="wp-caption-text">Alcoopedia - Base de connaissance du site</p></div>
<p>La base de connaissance, alcoopedia, s&#8217;enrichira au fur et à mesure des interactions et des questions avec le site.  Bâtie avec un nuage de tags, elle permet de remonter les articles les plus demandés ainsi que les mots les plus recherchés.</p>
<p>Nous avons conçu le branding (alcooquizz et alcoopedia) ainsi que toute l&#8217;identité visuelle du logo et du site.  Nous avons également développé le site web (en flex &amp; typo3) qui sera prochainement décliné sous forme d&#8217;une application iPhone.  Le CHUV et son équipe ont quant à eux fait un énorme travail de préparation et de rédaction pour que le site s&#8217;inscrive aussi dans la lignée des travaux de l&#8217;OMS et serve à terme, de base statistique sur les comportements liés à l&#8217;alcool.</p>
<p>Nous sommes ravis d&#8217;avoir contribué à ce beau projet et préparons actuellement la suite.</p>
<p>C&#8217;est une manière inédite de communiquer sur un sujet aussi sensible et nous sommes curieux de voir comment le projet sera reçu par les citoyens et les médias.<br />
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="480" height="270" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://www.dailymotion.com/swf/video/xe1uss" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="480" height="270" src="http://www.dailymotion.com/swf/video/xe1uss" allowscriptaccess="always" allowfullscreen="true"></embed></object><br />
Update :</p>
<p>Les premières retombées sont plutôt positives avec pour la première journée d&#8217;introduction du site avec 6&#8217;700 visiteurs et déjà quelques articles.</p>
<p><a title="20minutes" href="http://www.20min.ch/ro/news/vaud/story/Evaluez-votre-consommation-d-alcool-19430396" target="_blank">http://www.20min.ch/ro/news/vaud/story/Evaluez-votre-consommation-d-alcool-19430396</a></p>
<p><a title="TDG" href="http://www.tdg.ch/evaluez-consommation-alcool-site-web-2010-07-15" target="_blank">http://www.tdg.ch/evaluez-consommation-alcool-site-web-2010-07-15</a></p>
<p><a title="lematin" href="http://www.lematin.ch/actu/suisse/evaluez-consommation-alcool-site-web-299738" target="_blank">http://www.lematin.ch/actu/suisse/evaluez-consommation-alcool-site-web-299738</a></p>
<p><a title="24heures" href="http://www.24heures.ch/evaluez-consommation-alcool-site-web-2010-07-15" target="_blank">http://www.24heures.ch/evaluez-consommation-alcool-site-web-2010-07-15</a></p>
<p><a title="TSR" href="http://www.tsr.ch/info/suisse/2275848-un-site-web-pour-evaluer-son-rapport-a-l-alcool.html" target="_blank">http://www.tsr.ch/info/suisse/2275848-un-site-web-pour-evaluer-son-rapport-a-l-alcool.html</a></p>
<!-- PHP 5.x -->]]></content:encoded>
			<wfw:commentRss>http://blog.netinfluence.com/2010/07/15/lancement-dalcooquizz/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Flex – Fade In, Fade Out Text</title>
		<link>http://blog.netinfluence.com/2009/11/12/flex-fade-in-fade-out-text/</link>
		<comments>http://blog.netinfluence.com/2009/11/12/flex-fade-in-fade-out-text/#comments</comments>
		<pubDate>Thu, 12 Nov 2009 05:11:00 +0000</pubDate>
		<dc:creator>julien</dc:creator>
				<category><![CDATA[create]]></category>
		<category><![CDATA[flex]]></category>

		<guid isPermaLink="false">http://blog.netinfluence.ch/?p=56</guid>
		<description><![CDATA[This one is a very small one but one that may proove usefull to more than one I was recently playing around with flex, having fun fading in and out stuff when I realized that text components such as LABEL or TEXT where not very &#8220;fade friendly&#8221;. There was nothing special with my code, no special font or anything, so I googled a little and found out that you need to embed a font for it to be &#8220;fadable&#8221;, event if it is a system font. Here is an example : &#60;?xml version="1.0" encoding="utf-8"?&#62; &#60;mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="200" height="200" backgroundAlpha="0" backgroundColor="#FFFFFF"&#62; &#60;mx:Script&#62; &#60;![CDATA[ [Embed(systemFont='Verdana', fontName='myVerdana', mimeType='application/x-font')] public var myVerdana:Class; ]]&#62; &#60;/mx:Script&#62; &#60;mx:Canvas id="myCanvas" backgroundColor="#AAAAAA" backgroundAlpha="1" width="200" height="150" hideEffect="{myFade}" showEffect="{myFade}"&#62; &#60;mx:Text [...]]]></description>
			<content:encoded><![CDATA[<p>This one is a very small one but one that may proove usefull to more than one <img src='http://blog.netinfluence.com/wp-content/plugins/smilies-themer/Silk/emoticon_wink.png' alt=';-)' class='wp-smiley' /> </p>
<p>I was recently playing around with flex, having fun fading in and out stuff when I realized that text components such as LABEL or TEXT where not very &#8220;fade friendly&#8221;. There was nothing special with my code, no special font or anything, so I googled a little and found out that you need to embed a font for it to be &#8220;fadable&#8221;, event if it is a system font.</p>
<p>Here is an example :</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="200" height="200" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="/public/julien/textFadeDemo.swf" /><embed type="application/x-shockwave-flash" width="200" height="200" src="/public/julien/textFadeDemo.swf"></embed></object></p>
<pre class="brush: as3; html-script: true;">&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
                layout="absolute"
                width="200" height="200"
                backgroundAlpha="0"
                backgroundColor="#FFFFFF"&gt;

    &lt;mx:Script&gt;
        &lt;![CDATA[
            [Embed(systemFont='Verdana', fontName='myVerdana', mimeType='application/x-font')]
            public var myVerdana:Class;
        ]]&gt;
    &lt;/mx:Script&gt;

    &lt;mx:Canvas id="myCanvas"
               backgroundColor="#AAAAAA"
               backgroundAlpha="1"
               width="200" height="150"
               hideEffect="{myFade}"
               showEffect="{myFade}"&gt;
        &lt;mx:Text horizontalCenter="0"
                 top="30"
                 color="#000000"
                 text="Embeded Font Text"
                 fontFamily="myVerdana"
                 fontSize="15"/&gt;
        &lt;mx:Text horizontalCenter="0"
                 top="80"
                 color="#000000"
                 text="Non Embeded Font Text"
                 fontSize="15"/&gt;
    &lt;/mx:Canvas&gt;

    &lt;mx:Fade id="myFade" duration="1000" /&gt;

    &lt;mx:Button click="{myCanvas.visible = !myCanvas.visible}"
                 horizontalCenter="0"
                 top="160"
                 label="Fade In/Out"/&gt;

&lt;/mx:Application&gt;</pre>
<p>Hope this helps&#8230;</p>
<!-- PHP 5.x -->]]></content:encoded>
			<wfw:commentRss>http://blog.netinfluence.com/2009/11/12/flex-fade-in-fade-out-text/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Le multilingue en Flex</title>
		<link>http://blog.netinfluence.com/2009/10/26/le-multilingue-en-flex/</link>
		<comments>http://blog.netinfluence.com/2009/10/26/le-multilingue-en-flex/#comments</comments>
		<pubDate>Mon, 26 Oct 2009 09:13:00 +0000</pubDate>
		<dc:creator>julien</dc:creator>
				<category><![CDATA[create]]></category>
		<category><![CDATA[flex]]></category>

		<guid isPermaLink="false">http://blog.netinfluence.ch/?p=54</guid>
		<description><![CDATA[Flex a tout ce qu&#8217;il faut pour gérer le multilingue de manière très simple et efficace. Mais cela demande tout de même à être mis en place puisque quelques subtilités existent. Tout d&#8217;abord, vérifiez que vous avez les locales nécessaires au niveau du sdk (/Adobe Flex Builder 3/sdks/3.2.0/frameworks/locale/). Pour chaque locale, vous devez avoir un répertoire correspondant (par exemple en_US ou fr_FR). S&#8217;il vous en manque un, il suffit simplement de copier un des répertoires existants et de le renommer. Pour commencer, il nous faut un fichier par langue pour y mettre les traductions nécessaires. Pour cela, il suffit de créer un répertoire locale/ dans votre répertoire src/ : Dans ce répertoire locale/ vous devrez ensuite créer un répertoire pour [...]]]></description>
			<content:encoded><![CDATA[<p>Flex a tout ce qu&#8217;il faut pour gérer le multilingue de manière très simple et efficace. Mais cela demande tout de même à être mis en place puisque quelques subtilités existent.</p>
<p>Tout d&#8217;abord, vérifiez que vous avez les locales nécessaires au niveau du sdk (/Adobe Flex Builder 3/sdks/3.2.0/frameworks/locale/). Pour chaque locale, vous devez avoir un répertoire correspondant (par exemple en_US ou fr_FR). S&#8217;il vous en manque un, il suffit simplement de copier un des répertoires existants et de le renommer.</p>
<p>Pour commencer, il nous faut un fichier par langue pour y mettre les traductions nécessaires. Pour cela, il suffit de créer un répertoire locale/ dans votre répertoire src/ :</p>
<p><img title="Arborescence ML, oct. 2009" src="/public/julien/arboML.png" alt="" /></p>
<p>Dans ce répertoire locale/ vous devrez ensuite créer un répertoire pour chaque langue que vous voulez traduire (ici l&#8217;allemand et le français). Enfin, chaque répertoire doit contenir le fichier de traduction qu&#8217;on appellera ici &#8220;monProjet.properties&#8221;.</p>
<p>Les fichiers .properties contiennent une ligne par traduction selon le format de l&#8217;exemple ci dessous :</p>
<pre class="brush: as3;">L_LOGIN=identifiant
L_PASSWORD=mot de passe
L_EXIT=quitter</pre>
<p>J&#8217;ai l&#8217;habitude (pour des raisons historiques <img src='http://blog.netinfluence.com/wp-content/plugins/smilies-themer/Silk/emoticon_wink.png' alt=';-)' class='wp-smiley' /> ) d&#8217;écrire mes clés de traduction en majuscule et de les faire commencer par un &#8220;L_&#8221; mais ce n&#8217;est pas une obligation.</p>
<p>Maintenant que nous avons nos fichiers de traductions, il faut dire à l&#8217;application qu&#8217;ils existent. Pour cela, il suffit de rajouter au fichier monProjet.mxml les quelques lignes suivantes :</p>
<pre class="brush: xml;">    &lt;mx:Metadata&gt;
        [ResourceBundle("monProjet")]
    &lt;/mx:Metadata&gt;</pre>
<p>Maintenant, chaque fois que vous voudrez traduire un texte, il faudra l&#8217;intégrer de la manière suivante à votre code :</p>
<pre class="brush: as3;">    resourceManager.getString('monProjet', 'L_LOGIN');</pre>
<p>Reste encore à préciser à votre application quelle est la langue actuellement sélectionnée. Rien de plus simple. La commande ci-dessous permet justement d&#8217;indiquer la langue choisie (quelle chance !) :</p>
<pre class="brush: as3;">    resourceManager.localeChain = ['fr_FR'];</pre>
<p>Evidemment, pour l&#8217;allemand, ça aurait donné :</p>
<pre class="brush: as3;">    resourceManager.localeChain = ['de_DE'];</pre>
<p>Une dernier petit détail… la compilation. En effet, lors de la compilation de votre projet, il faut préciser les langues utilisées et l&#8217;endroit où se trouvent les fichiers de traduction. Pour cela, dans les propriétés de votre projet, une section (&#8220;Flex Compiler&#8221;) traite de la compilation. Vous pouvez alors donner des arguments supplémentaires au compilateur. Pour la gestion multilingue, nous allons ajouter ceux-ci :</p>
<pre class="brush: plain; wrap-lines: false; light: true;">-locale=fr_FR,de_DE -allow-source-path-overlap=true -source-path=locale/{locale}</pre>
<p><img title="Compilation ML, oct. 2009" src="/public/julien/.compilationML_m.jpg" alt="" /></p>
<p>Cette fois le tour est joué, votre application est polyglotte.</p>
<p>Voici un très petit exemple qui permet de rapidement tester la fonctionalité :</p>
<pre class="brush: as3; html-script: true;">&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;mx:WindowedApplication
    xmlns:mx="http://www.adobe.com/2006/mxml"
    layout="absolute"
    creationComplete="init()"&gt;
    &lt;mx:Metadata&gt;
        [ResourceBundle("monProjet")]
    &lt;/mx:Metadata&gt;
    &lt;mx:Script&gt;
        &lt;![CDATA[
            private function init():void {
                resourceManager.localeChain = ['fr_FR'];
            }
        ]]&gt;
    &lt;/mx:Script&gt;
    &lt;mx:Label text="FR" x="10" y="10"
              click="{resourceManager.localeChain = ['fr_FR']}"/&gt;
    &lt;mx:Label text="DE" x="10" y="30"
              click="{resourceManager.localeChain = ['de_DE']}"/&gt;
    &lt;mx:Label x="50" y="20"
              text="{resourceManager.getString('monProjet', 'L_HELLO')}"/&gt;
&lt;/mx:WindowedApplication&gt;</pre>
<p>Bonne journée.</p>
<!-- PHP 5.x -->]]></content:encoded>
			<wfw:commentRss>http://blog.netinfluence.com/2009/10/26/le-multilingue-en-flex/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Flex – Play with pictures</title>
		<link>http://blog.netinfluence.com/2009/08/12/flex-play-with-pictures/</link>
		<comments>http://blog.netinfluence.com/2009/08/12/flex-play-with-pictures/#comments</comments>
		<pubDate>Wed, 12 Aug 2009 13:57:00 +0000</pubDate>
		<dc:creator>julien</dc:creator>
				<category><![CDATA[create]]></category>
		<category><![CDATA[flex]]></category>

		<guid isPermaLink="false">http://blog.netinfluence.ch/?p=48</guid>
		<description><![CDATA[Flex offers great functionalities to play around with the pictures you have in your application. I am far from being a design or photo expert but I did have fun modifying the pictures that were inside my latest flex app. My particular issue was the following. We had a list of products, each of them having a related picture. Some of these products could be bought, others not yet so we wanted to display the later as &#8220;disabled&#8221;. In other words, we wanted a nice colorfull picture for some products and a grayscale picture for others but the only picture available to us was the colorfull one. So we used the ColorMatrixFilter. Here is how : &#60;?xml version="1.0" encoding="utf-8"?&#62; &#60;mx:Application [...]]]></description>
			<content:encoded><![CDATA[<p>Flex offers great functionalities to play around with the pictures you have in your application. I am far from being a design or photo expert but I did have fun modifying the pictures that were inside my latest flex app.</p>
<p>My particular issue was the following. We had a list of products, each of them having a related picture. Some of these products could be bought, others not yet so we wanted to display the later as &#8220;disabled&#8221;. In other words, we wanted a nice colorfull picture for some products and a grayscale picture for others but the only picture available to us was the colorfull one.</p>
<p>So we used the ColorMatrixFilter. Here is how :</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="600" height="300" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="/public/julien/editImgDemo.swf" /><embed type="application/x-shockwave-flash" width="600" height="300" src="/public/julien/editImgDemo.swf"></embed></object></p>
<pre class="brush:xml;">&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;mx:Application
    xmlns:mx="http://www.adobe.com/2006/mxml"
    layout="absolute"
    height="300"
    width="600"
    backgroundGradientAlphas="[0,0]"
    backgroundColor="#FFFFFF"&gt;

    &lt;mx:Script&gt;
        &lt;![CDATA[</pre>
<pre class="brush:as3;first-line:12">            private var rLum:Number = 0.212671;
            private var gLum:Number = 0.715160;
            private var bLum:Number = 0.072169;

            [Bindable]
            private var bwMatrix:Array =
                [rLum, gLum, bLum, 0, 0,
                 rLum, gLum, bLum, 0, 0,
                 rLum, gLum, bLum, 0, 0,
                 0, 0, 0, 0.5, 0];

            [Bindable]
            private var imgUrl:String = "http://blog.netinfluence.ch/public/julien/editImgDemo.png";</pre>
<pre class="brush:xml;first-line:25">        ]]&gt;
    &lt;/mx:Script&gt;

    &lt;mx:ColorMatrixFilter id="cmf" matrix="{bwMatrix}" /&gt;

    &lt;mx:Image source="{imgUrl}" height="300" width="300"/&gt;
    &lt;mx:Image source="{imgUrl}" height="300" width="300"
              left="300" filters="{[cmf]}"/&gt;

&lt;/mx:Application&gt;</pre>
<p>This is a very simple example. You can actually apply this method to other components than the image one. And if you play around with the matrix and the rgb values, you will find that you can change many things. The best way to see what you can do is to check out this little app : <a href="http://afoucal.free.fr/wp-content/ColorMatrixBuilder/ColorMatrix.html">http://afoucal.free.fr/wp-content/ColorMatrixBuilder/ColorMatrix.html</a></p>
<p>So go ahead and build you own photoshop <img src='http://blog.netinfluence.com/wp-content/plugins/smilies-themer/Silk/emoticon_wink.png' alt=';-)' class='wp-smiley' /> </p>
<!-- PHP 5.x -->]]></content:encoded>
			<wfw:commentRss>http://blog.netinfluence.com/2009/08/12/flex-play-with-pictures/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A cool and flexible interface without images</title>
		<link>http://blog.netinfluence.com/2009/08/12/a-cool-and-flexible-interface-without-images/</link>
		<comments>http://blog.netinfluence.com/2009/08/12/a-cool-and-flexible-interface-without-images/#comments</comments>
		<pubDate>Wed, 12 Aug 2009 12:32:00 +0000</pubDate>
		<dc:creator>julien</dc:creator>
				<category><![CDATA[create]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[interface]]></category>

		<guid isPermaLink="false">http://blog.netinfluence.ch/?p=47</guid>
		<description><![CDATA[I recently had to develop a small widget with round corners that needed to be resized in all directions. Coming from the web, my first approach was to create this application using images. This approach is possible but you need to cut your images and the specificity of the layout made it impossible to manage auto-resize. Unsatisfied with this first approach, I looked for something else. I finally found that Flex offers a lot of possibilities allowing you to create cool layouts using only code. This makes global modifications to your application a lot easier to manage. Here is a simple example that does not use one single image : And here is the code /*mxml file*/ &#60;?xml version="1.0" encoding="utf-8"?&#62; [...]]]></description>
			<content:encoded><![CDATA[<p>I recently had to develop a small widget with round corners that needed to be resized in all directions. Coming from the web, my first approach was to create this application using images. This approach is possible but you need to cut your images and the specificity of the layout made it impossible to manage auto-resize.</p>
<p>Unsatisfied with this first approach, I looked for something else. I finally found that Flex offers a lot of possibilities allowing you to create cool layouts using only code. This makes global modifications to your application a lot easier to manage.</p>
<p>Here is a simple example that does not use one single image :</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="200" height="200" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="/public/julien/noImgDemo.swf" /><embed type="application/x-shockwave-flash" width="200" height="200" src="/public/julien/noImgDemo.swf"></embed></object></p>
<p>And here is the code</p>
<pre class="brush: xml; wrap-lines: false;">/*mxml file*/
&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;mx:Application
    xmlns:mx="http://www.adobe.com/2006/mxml"
    layout="absolute"
    height="200"
    width="200"
    xmlns:geom="flash.geom.*"&gt;
    &lt;mx:Style source="css/style.css"/&gt;
    &lt;mx:Canvas styleName="outsideCanvas"
               height="190" width="190"&gt;
        &lt;mx:filters&gt;
            &lt;mx:DropShadowFilter distance="0"
                                 quality="15"
                                 alpha="0.5"
                                 inner="false"/&gt;
        &lt;/mx:filters&gt;
        &lt;mx:Canvas styleName="insideCanvas"
                   height="150" width="150"
                   verticalScrollBarStyleName="verticalScrollBar"&gt;
            &lt;mx:filters&gt;
                &lt;mx:DropShadowFilter distance="0"
                             quality="15"
                             alpha="0.5"
                             inner="true"/&gt;
            &lt;/mx:filters&gt;
            &lt;mx:Canvas verticalScrollPolicy="off"
                       horizontalScrollPolicy="off"
                       styleName="buttonStyle"
                       id="exampleButton" width="80"
                       horizontalCenter="0"
                       verticalCenter="0"&gt;
                &lt;mx:Canvas y="1" x="1"
                           width="{exampleButton.width-4}"
                           height="50%"
                           backgroundAlpha="0.5"
                           styleName="insideButton"/&gt;
                &lt;mx:Canvas y="0" x="0" width="100%"
                           height="100%"
                           backgroundAlpha="0.5"
                           visible="{!this.enabled}"
                           styleName="insideButton" /&gt;
                &lt;mx:Text text="OK"
                         verticalCenter="0"
                         horizontalCenter="0"
                         paddingTop="4"
                         color="#FFFFFF" /&gt;
                &lt;mx:mouseOver&gt;
                    &lt;![CDATA[
    exampleButton.setStyle('backgroundColor', '#DF0021');
                    ]]&gt;
                &lt;/mx:mouseOver&gt;
                &lt;mx:mouseOut&gt;
                    &lt;![CDATA[
    exampleButton.setStyle('backgroundColor', '#666666');
                    ]]&gt;
                &lt;/mx:mouseOut&gt;
            &lt;/mx:Canvas&gt;
        &lt;/mx:Canvas&gt;
    &lt;/mx:Canvas&gt;
&lt;/mx:Application&gt;</pre>
<pre class="brush: css;">/* CSS file */
Application {
     backgroundGradientAlphas: 1, 1;
     backgroundGradientColors: #FFFFFF, #FFFFFF;
}
.outsideCanvas {
     horizontalCenter:0;
     verticalCenter: 0;
     backgroundAlpha: 1;
     backgroundColor: #EEEEEE;
     cornerRadius: 8;
     borderStyle: solid;
     borderThickness: 2;
     borderColor: #FFFFFF;
}
.insideCanvas {
     horizontalCenter:0;
     verticalCenter: 0;
     backgroundAlpha: 1;
     backgroundColor: #FFFFFF;
     cornerRadius: 8;
     borderStyle: solid;
     borderThickness: 2;
     borderColor: #FFFFFF;
}
.buttonStyle {
     borderColor: #DDDDDD;
     borderStyle:solid;
     borderThickness: 1;
     focusThickness: 0;
     cornerRadius: 6;
     backgroundColor: #666666;
     backgroundAlpha: 1;
}
.insideButton {
     cornerRadius: 3;
     borderColor: #DDDDDD;
     borderStyle: solid;
     borderThickness: 0;
     backgroundColor: #FFFFFF;
}</pre>
<p>If this was not an example, the button would have been a component for obvious reusability reasons. You can do this sort of stuff for other components as well such as scrollbars, datagrids, etc&#8230; have fun !</p>
<!-- PHP 5.x -->]]></content:encoded>
			<wfw:commentRss>http://blog.netinfluence.com/2009/08/12/a-cool-and-flexible-interface-without-images/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>L’auto-update en Flex, c’est facile !</title>
		<link>http://blog.netinfluence.com/2009/06/16/flex-auto-update/</link>
		<comments>http://blog.netinfluence.com/2009/06/16/flex-auto-update/#comments</comments>
		<pubDate>Tue, 16 Jun 2009 11:32:00 +0000</pubDate>
		<dc:creator>julien</dc:creator>
				<category><![CDATA[create]]></category>
		<category><![CDATA[flex]]></category>

		<guid isPermaLink="false">http://blog.netinfluence.ch/?p=45</guid>
		<description><![CDATA[Quel bonheur de pouvoir mettre à jour son application sans se déplacer. C&#8217;est encore mieux lorsque ce genre de fonctionalité est facile à intégrer à son application. C&#8217;est justement le cas pour Flex et en voici la preuve. Le principe D&#8217;un côté, l&#8217;application AIR et de l&#8217;autre, le serveur sur lequel se trouve la nouvelle version de l&#8217;application AIR ainsi qu&#8217;un fichier update.xml qui décrit cette nouvelle version. Périodiquement, l&#8217;application AIR va vérifier sur le serveur la présence d&#8217;une nouvelle version et dans un tel cas, la télécharge et l&#8217;installe. Ainsi, mettre à jour un parc informatique devient simple et rapide. L&#8217;application AIR La première chose à faire est d&#8217;importer les librairies nécessaires à la mise à jour automatique : import [...]]]></description>
			<content:encoded><![CDATA[<p>Quel bonheur de pouvoir mettre à jour son application sans se déplacer. C&#8217;est encore mieux lorsque ce genre de fonctionalité est facile à intégrer à son application. C&#8217;est justement le cas pour Flex et en voici la preuve.</p>
<h2>Le principe</h2>
<p>D&#8217;un côté, l&#8217;application AIR et de l&#8217;autre, le serveur sur lequel se trouve la nouvelle version de l&#8217;application AIR ainsi qu&#8217;un fichier <em>update.xml</em> qui décrit cette nouvelle version. Périodiquement, l&#8217;application AIR va vérifier sur le serveur la présence d&#8217;une nouvelle version et dans un tel cas, la télécharge et l&#8217;installe. Ainsi, mettre à jour un parc informatique devient simple et rapide.</p>
<h2>L&#8217;application AIR</h2>
<p>La première chose à faire est d&#8217;importer les librairies nécessaires à la mise à jour automatique :</p>
<pre class="brush: as3;">import air.update.ApplicationUpdaterUI;
import air.update.events.UpdateEvent;</pre>
<p>Ensuite, il vous faut une méthode qui vérifie si la version présente sur le serveur est plus récente que la version actuelle. Cette méthode peut par exemple être appelée dans votre méthode init() (creationComplete=&#8217;init()&#8217;).</p>
<pre class="brush: as3;first-line: 2;">// Création de la variable appUpdater - merci Blindheit
public var appUpdater:ApplicationUpdaterUI = new ApplicationUpdaterUI();
public function checkForUpdates():void
{
    appUpdater.addEventListener(UpdateEvent.INITIALIZED, updateCheckNow);
    appUpdater.updateURL = "http://server/update.xml";
    appUpdater.delay = 0.1;
    appUpdater.isCheckForUpdateVisible = false;
    appUpdater.initialize();
}</pre>
<p>Quelques petites explications supplémentaires :</p>
<ul>
<li><em>updateURL</em> est l&#8217;url du fichier update.xml qui se trouve sur le serveur</li>
<li>le <em>delay</em> est l&#8217;interval de temps (en jours) séparant deux vérifications de la version sur le seveur</li>
<li><em>isCheckForUpdateVisible</em> permet d&#8217;activer ou de désactiver la fenêtre qui demande à l&#8217;utilisateur si il veut en effet regarder si une mise à jour existe. Ici, elle est désactivée parce que je la trouve superflue. Il existe également d&#8217;autres options permettant de jouer avec l&#8217;affichage des fenêtres.</li>
<li><em>initialize()</em> active le processus</li>
<li>Enfin, grâce à l<em>&#8216;addEventListener</em>, la méthode <em>updateCheckNow</em> est appelée au retour de <em>initialize</em>. Ceci permet, grâce à la fonction <em>checkNow()</em>, de forcer un appel au serveur lors du lancement initial de l&#8217;application.</li>
</ul>
<pre class="brush: as3;">public function updateCheckNow(event:UpdateEvent):void
{
    appUpdater.checkNow();
}</pre>
<p>Voilà pour l&#8217;application AIR.</p>
<h2>Côté serveur</h2>
<p>Sur le serveur vous devez mettre l&#8217;application AIR et un fichier <em>update.xml</em> qui décrit la nouvelle version de l&#8217;application. Au niveau de l&#8217;application, vous devez mettre à jour le numéro de version qui se trouve dans le fichier nomxxx-app.xml. Ensuite ce numéro de version doit se retrouver dans le fichier <em>update.xml</em> :</p>
<pre class="brush: xml;wrap-lines:false;">&lt;update xmlns="http://ns.adobe.com/air/framework/update/description/1.0"&gt;
    &lt;version&gt;0.2&lt;/version&gt;
    &lt;url&gt;http://server/nomxxx.air&lt;/url&gt;
    &lt;description&gt;
        Nouvelle version 0.2 de nomxxx
    &lt;/description&gt;
&lt;/update&gt;</pre>
<p>Il ne reste plus qu&#8217;à installer votre version 0.1 sur votre ordinateur, à déposer la version 0.2 sur le serveur et lorsque vous lancez la version 0.1, elle ira automatiquement vérifier le fichier update.xml qui se trouve sur le serveur et la mise à jour se fera ensuite automatiquement.</p>
<h4>Remarque :</h4>
<ul>
<li>Vérifier bien que l&#8217;application qui ouvre par défaut vos fichiers AIR est bien la bonne. Dans le cas contraire, la mise à jour plantera au moment de l&#8217;installation de la nouvelle version puisqu&#8217;elle ne pourra pas se lancer automatiquement.</li>
</ul>
<p>Voilà, bon devs !</p>
<!-- PHP 5.x -->]]></content:encoded>
			<wfw:commentRss>http://blog.netinfluence.com/2009/06/16/flex-auto-update/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Une application AIR sans “window”</title>
		<link>http://blog.netinfluence.com/2009/05/15/une-application-air-sans-window/</link>
		<comments>http://blog.netinfluence.com/2009/05/15/une-application-air-sans-window/#comments</comments>
		<pubDate>Fri, 15 May 2009 09:06:00 +0000</pubDate>
		<dc:creator>julien</dc:creator>
				<category><![CDATA[create]]></category>
		<category><![CDATA[adobe]]></category>
		<category><![CDATA[flex]]></category>

		<guid isPermaLink="false">http://blog.netinfluence.ch/?p=41</guid>
		<description><![CDATA[Envie de faire une application AIR sans l&#8217;emprisonner dans une fenêtre dont le style est géré par l&#8217;OS sur lequel tourne votre programme ? Voici quelques simples étapes à suivre pour libérer votre oeuvre. 1- Si votre application s&#8217;appelle &#8220;demo&#8221;, vous devez avoir un fichier qui se nomme : demo-app.xml. Ouvrez ce fichier et faites les modifications suivantes : remplacez &#60;!&#8211; &#60;systemChrome&#62;&#60;/systemChrome&#62; &#8211;&#62; par &#60;systemChrome&#62;none&#60;/systemChrome&#62; selon le look de votre application, il peut être intéressant de rendre le fond transparent. Pour cela, remplacez &#60;!&#8211; &#60;transparent&#62;&#60;/transparent&#62; &#8211;&#62; par &#60;transparent&#62;true&#60;/transparent&#62; 2- Il ne reste plus qu&#8217;à modifier votre fichier demo.mxml en rajoutant dans la balise &#60;mx:WindowedApplication&#62; l&#8217;attribut showFlexChrome=&#8221;false&#8221; &#60;mx:WindowedApplication showFlexChrome=&#8221;false&#8221;&#62; Voilà, c&#8217;est déjà fini. Vous pouvez maintenant laissez exprimer votre esprit artistique [...]]]></description>
			<content:encoded><![CDATA[<p>Envie de faire une application AIR sans l&#8217;emprisonner dans une fenêtre dont le style est géré par l&#8217;OS sur lequel tourne votre programme ? Voici quelques simples étapes à suivre pour libérer votre oeuvre.</p>
<p>1- Si votre application s&#8217;appelle &#8220;demo&#8221;, vous devez avoir un fichier qui se nomme : demo-app.xml. Ouvrez ce fichier et faites les modifications suivantes :</p>
<ul>
<li>remplacez<br />
<strong><em>&lt;!&#8211; &lt;systemChrome&gt;&lt;/systemChrome&gt; &#8211;&gt;</em></strong><br />
par<br />
<strong><em>&lt;systemChrome&gt;none&lt;/systemChrome&gt;</em></strong></li>
<li>selon le look de votre application, il peut être intéressant de rendre le fond transparent. Pour cela, remplacez<br />
<strong><em>&lt;!&#8211; &lt;transparent&gt;&lt;/transparent&gt; &#8211;&gt;</em></strong><br />
par<br />
<strong><em>&lt;transparent&gt;true&lt;/transparent&gt;</em></strong></li>
</ul>
<p>2- Il ne reste plus qu&#8217;à modifier votre fichier demo.mxml en rajoutant dans la balise &lt;mx:WindowedApplication&gt; l&#8217;attribut showFlexChrome=&#8221;false&#8221;</p>
<ul>
<li><strong><em>&lt;mx:WindowedApplication showFlexChrome=&#8221;false&#8221;&gt;</em></strong></li>
</ul>
<p>Voilà, c&#8217;est déjà fini. Vous pouvez maintenant laissez exprimer votre esprit artistique sans barrières <img src='http://blog.netinfluence.com/wp-content/plugins/smilies-themer/Silk/emoticon_wink.png' alt=';-)' class='wp-smiley' /> </p>
<table border="0" width="100%">
<tbody>
<tr>
<td align="center">Avant</td>
<td align="center">Après</td>
</tr>
<tr>
<td align="center"><img style="margin: 0 1em 1em 0;" title="air avec fenetre, mai 2009" src="/public/julien/windowedair.png" alt="" /></td>
<td align="center"><img style="margin: 0 0 1em 1em;" title="air sans fenetre, mai 2009" src="/public/julien/windowfreeair.png" alt="" /></td>
</tr>
</tbody>
</table>
<!-- PHP 5.x -->]]></content:encoded>
			<wfw:commentRss>http://blog.netinfluence.com/2009/05/15/une-application-air-sans-window/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

